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文件所在目录,从而正确找到文件。
是的,是这样的

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Qu'il s'agisse d'un article, d'un article ou d'un tutoriel, le point fort de tout document est le titre et bien sûr la table des matières. Il décrit la structure générale du document afin que les utilisateurs puissent accéder à l'endroit et à ce qu'ils s'attendent à lire dans le document. C'est également une bonne pratique d'ajouter une table des matières à la plupart des documents pour leur donner un aspect plus professionnel. Aujourd'hui, tout se passe en ligne et les gens utilisent Google Docs pour créer la plupart des documents. De nombreux utilisateurs ne savent toujours pas comment insérer ou ajouter une table des matières dans Google Docs. Par conséquent, nous proposons cet article pour expliquer comment créer ou insérer une table des matières dans Google Docs. Comment insérer une table des matières dans Google Docs Étape 1 : Cliquez ici pour visiter Google Docs Online. Étape 2 : Si

vue3+vite:src utilise require pour importer dynamiquement des images et des rapports d'erreurs et des solutions. vue3+vite importe dynamiquement plusieurs images. Si vue3 est développé à l'aide de TypeScript, il y aura un message d'erreur indiquant que requireisnotdefined ne peut pas être utilisé comme imgUrl. :require(' .../assets/test.png') est importé car TypeScript ne prend pas en charge require, donc l'importation est utilisée. Voici comment le résoudre : utilisez waitimport.

Utilisez la fonction File.isDirectory() de Java pour déterminer si un fichier existe et est de type répertoire. En programmation Java, vous rencontrez souvent des situations dans lesquelles vous devez déterminer si un fichier existe et est de type répertoire. Java fournit la classe File pour gérer les fichiers et les répertoires. La fonction isDirectory() peut nous aider à déterminer si un fichier est un type de répertoire. La fonction File.isDirectory() est une méthode de la classe File. Sa fonction est de déterminer le fichier actuel.

Introduction à la fonction PHP — rename() : Renommer des fichiers ou des répertoires Introduction : En PHP, la fonction rename() est utilisée pour renommer des fichiers ou des répertoires. Il fournit un moyen simple de modifier le nom d’un fichier ou d’un répertoire. Qu'il s'agisse d'un seul fichier ou d'un répertoire entier, vous pouvez utiliser cette fonction pour effectuer une opération de renommage. Le processus de renommage peut être facilement réalisé en spécifiant le nom du fichier ou du répertoire source et le nom cible. Syntaxe : boolrename(string$source,str

La fonction glob() en PHP est utilisée pour rechercher des fichiers ou des répertoires et constitue une puissante fonction d'opération de fichiers. Il peut renvoyer le chemin d'un fichier ou d'un répertoire en fonction d'une correspondance de modèle spécifiée. La syntaxe de la fonction glob() est la suivante : glob(pattern, flags) où pattern représente la chaîne de modèle à rechercher, qui peut être une expression générique, telle que *.txt (fichiers correspondants se terminant par .txt), ou un chemin de fichier spécifique. flags est un paramètre facultatif utilisé pour contrôler la fonction

Comment vérifier si le répertoire est vide sous Linux : 1. Entrez dans le terminal Linux ; 2. Exécutez "res=`ls -A $dir` if [ -z $res ]; puis echo "$dir ..."else echo La méthode "$ La dir..."fi" peut déterminer si le répertoire est vide.

Utilisez la fonction path/filepath.Dir pour obtenir la partie répertoire du chemin de fichier. Dans notre processus de développement quotidien, le traitement du chemin de fichier est souvent impliqué. Parfois, nous devons obtenir la partie répertoire du chemin du fichier, c’est-à-dire le chemin d’accès au dossier où se trouve le fichier. Dans le langage Go, vous pouvez utiliser la fonction Dir fournie par le package path/filepath pour implémenter cette fonction. La signature de la fonction Dir est la suivante : funcDir(pathstring)string La fonction Dir reçoit un mot

Utilisation de require : 1. Introduire des modules : Dans de nombreux langages de programmation, require est utilisé pour introduire des modules ou des bibliothèques externes afin que les fonctions qu'ils fournissent puissent être utilisées dans le programme. Par exemple, dans Ruby, vous pouvez utiliser require pour charger des bibliothèques ou des modules tiers ; 2. Importer des classes ou des méthodes : dans certains langages de programmation, require est utilisé pour importer des classes ou des méthodes spécifiques afin qu'elles puissent être utilisées dans le fichier actuel. ; 3. Effectuer des tâches spécifiques : dans certains langages ou frameworks de programmation, require est utilisé pour effectuer des tâches ou des fonctions spécifiques.
