require目录
osadmin的目录如下
注意
index.php在uploads目录下,
init.inc.php在uploads/include目录下
config.inc.php在uploads/include/config目录下
index.php:
require ('./include/init.inc.php');
init.inc.php:
require 'config/config.inc.php';
按理说访问index.php页时,寻找config.inc.php页的路径应为uploads/config/config.inc.php,是一个错误路径,但为什么实际运行确能找到?各位能解释下是怎么找到的吗。
难道解析这种既不是绝对路径,又不是相对路径的的路径,还有什么基情。
(补充)include_path:‘.;C:\php\pear’
回复讨论(解决方案)
init.inc.php:
require 'config/config.inc.php';
init.inc.php里面不是包括了config.inc.php 么,当然能找到啦。
php不是参照入口文件的路径吗?也就是说 在找config.inc.php时应该是按“uploads/config/config.inc.php”这个路径找,但显然这个路径不存在,存在的是“uploads/include/config/config.inc.php”。难道不是这样?
require 'config/config.inc.php';
不是在 init.inc.php 中执行的吗?
所以既然只有 uploads/include/config/config.inc.php 存在,当然就加载他了
你#2的描述是正确的
如果你有 uploads/config/config.inc.php 文件,那么这个文件将被优先加载
也就是说,你可以用这种方法干预应用系统的行为
下面是用我的伪代码描述require请求文件的处理,看对否:
相对路径:前面带./或者../的路径,如'./include/init.inc.php'
伪相对路径:前面不带./或者../且又不是绝对路径的路径,如'config/config.inc.php'
当前工作目录:web环境下,即入口文件所在目录
if(path为绝对路径){ file_path=path;}else if(path为相对路径){ file_path=conbine(当前工作目录,path);}else{ //伪相对路径 dir_list=include_path; dir_list.add(当前工作目录); dir_list.add(调用语句所在目录); foreach(dir_list as dir){ temp_path=conbine(dir,path); if(temp_path存在){ file_path=temp_path; return; } }}
访问index.php页时
require 'config/config.inc.php';
其实生效的是
file_path=conbine(调用语句所在目录,path)
这里调用语句所在目录,即init.inc.php文件所在目录,从而正确找到文件。
是的,是这样的

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Ganz gleich, ob es sich um einen Artikel, eine Arbeit oder ein Tutorial handelt, das wichtigste Highlight eines jeden Dokuments ist der Titel und natürlich das Inhaltsverzeichnis. Es beschreibt die Gliederungsstruktur des Dokuments, damit Benutzer herausfinden können, wo und was sie im Dokument lesen möchten. Es empfiehlt sich außerdem, den meisten Dokumenten ein Inhaltsverzeichnis hinzuzufügen, damit sie professioneller aussehen. Heutzutage geschieht alles online und die meisten Dokumente werden mit Google Docs erstellt. Viele Nutzer sind sich immer noch nicht sicher, wie sie ein Inhaltsverzeichnis in Google Docs einfügen oder hinzufügen. Aus diesem Grund haben wir diesen Artikel erstellt, um zu erklären, wie Sie ein Inhaltsverzeichnis in Google Docs erstellen oder einfügen. So fügen Sie ein Inhaltsverzeichnis in Google Docs ein. Schritt 1: Klicken Sie hier, um Google Docs Online zu besuchen. Schritt 2: Wenn

vue3+vite:src verwendet „require“, um Bilder dynamisch zu importieren, und vue3+vite importiert dynamisch mehrere Bilder. Wenn Sie „requireisnotdefined“ verwenden, wird eine Fehlermeldung angezeigt like vue2 like imgUrl:require(' .../assets/test.png') wird importiert, da Typescript Require nicht unterstützt, daher wird Import verwendet. So lösen Sie das Problem: Verwenden Sieawaitimport

Verwenden Sie die Funktion File.isDirectory() von Java, um festzustellen, ob eine Datei vorhanden ist und einen Verzeichnistyp hat. Bei der Java-Programmierung kommt es häufig vor, dass Sie feststellen müssen, ob eine Datei vorhanden ist und einen Verzeichnistyp hat. Java stellt die File-Klasse zum Betreiben von Dateien und Verzeichnissen bereit. Die Funktion isDirectory() kann uns dabei helfen, festzustellen, ob eine Datei ein Verzeichnistyp ist. Die Funktion File.isDirectory() ist eine Methode in der File-Klasse. Ihre Funktion besteht darin, die aktuelle Datei zu ermitteln

Einführung in die PHP-Funktion – rename(): Umbenennen von Dateien oder Verzeichnissen Einführung: In PHP wird die Funktion rename() zum Umbenennen von Dateien oder Verzeichnissen verwendet. Es bietet eine einfache Möglichkeit, den Namen einer Datei oder eines Verzeichnisses zu ändern. Egal, ob es sich um eine einzelne Datei oder ein ganzes Verzeichnis handelt, mit dieser Funktion können Sie es umbenennen. Der Umbenennungsvorgang kann einfach durchgeführt werden, indem der Name der Quelldatei oder des Quellverzeichnisses und der Zielname angegeben werden. Syntax: boolrename(string$source,str

Die Funktion glob() in PHP wird zum Suchen von Dateien oder Verzeichnissen verwendet und ist eine leistungsstarke Dateioperationsfunktion. Es kann den Pfad einer Datei oder eines Verzeichnisses basierend auf einer angegebenen Musterübereinstimmung zurückgeben. Die Syntax der glob()-Funktion lautet wie folgt: glob(pattern, flags) wobei „pattern“ die abzugleichende Musterzeichenfolge darstellt, die ein Platzhalterausdruck sein kann, z. B. *.txt (übereinstimmende Dateien mit der Endung .txt) oder einen bestimmten Dateipfad. Flags ist ein optionaler Parameter, der zur Steuerung der Funktion verwendet wird

So prüfen Sie, ob das Verzeichnis unter Linux leer ist: 1. Geben Sie das Linux-Terminal ein; 2. Führen Sie „res=`ls -A $dir` if [ -z $res ]; then echo „$dir ..."else echo aus Die Methode „$ Die dir...fi“ kann feststellen, ob das Verzeichnis leer ist.

Verwenden Sie die Funktion path/filepath.Dir, um den Verzeichnisteil des Dateipfads abzurufen. In unserem täglichen Entwicklungsprozess ist häufig die Verarbeitung von Dateipfaden erforderlich. Manchmal müssen wir den Verzeichnisteil des Dateipfads ermitteln, also den Pfad zu dem Ordner, in dem sich die Datei befindet. In der Go-Sprache können Sie die Dir-Funktion verwenden, die vom Paket path/filepath bereitgestellt wird, um diese Funktion zu implementieren. Die Signatur der Dir-Funktion lautet wie folgt: funcDir(pathstring)string Die Dir-Funktion empfängt ein Wort

Verwendung von require: 1. Module einführen: In vielen Programmiersprachen wird require verwendet, um externe Module oder Bibliotheken einzuführen, damit die von ihnen bereitgestellten Funktionen im Programm verwendet werden können. In Ruby können Sie beispielsweise „require“ verwenden, um Bibliotheken oder Module von Drittanbietern zu laden. 2. Klassen oder Methoden importieren: In einigen Programmiersprachen wird „require“ verwendet, um bestimmte Klassen oder Methoden zu importieren, damit sie in der aktuellen Datei verwendet werden können 3. Führen Sie bestimmte Aufgaben aus: In einigen Programmiersprachen oder Frameworks wird require zum Ausführen bestimmter Aufgaben oder Funktionen verwendet.
