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

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

无论是文章、论文还是教程,任何文档的主要亮点都是标题,当然还有目录。它描述了文档的大纲结构,以便用户可以到达他们期待从文档中读取的位置和内容。将目录添加到大多数文档中以使它们看起来更专业也是一种最佳实践。如今,一切都在网上进行,人们使用谷歌文档来创建大多数文档。许多用户仍然不确定如何在 google 文档中插入或添加目录。因此,我们提出了这篇文章来解释如何在谷歌文档中创建或插入目录。如何在 Google Docs 中插入目录第 1 步:点击此处访问 Google Docs 在线版。第 2 步:如

vue3+vite:src使用require动态导入图片报错和解决方法vue3+vite动态的导入多张图片vue3如果使用的是typescript开发,就会出现require引入图片报错,requireisnotdefined不能像使用vue2这样imgUrl:require(’…/assets/test.png’)导入,是因为typescript不支持require所以用import导入,下面介绍如何解决:使用awaitimport

使用java的File.isDirectory()函数判断文件是否存在且为目录类型在Java编程中,经常会遇到需要判断一个文件是否存在且为目录类型的情况。Java提供了File类来操作文件和目录,其中的isDirectory()函数可以帮助我们判断一个文件是否是目录类型。File.isDirectory()函数是File类中的一个方法,其作用是判断当前Fil

PHP函数介绍—rename():重命名文件或目录介绍:在PHP中,rename()函数用于重命名文件或目录。它提供了一种简单的方法来更改文件或目录的名称。无论是单个文件还是整个目录,都可以使用这个函数进行重命名操作。通过指定源文件或目录的名称以及目标名称,可以轻松地完成重命名过程。语法:boolrename(string$source,str

linux查看目录是否为空的方法:1、进入linux终端;2、通过执行“res=`ls -A $dir` if [ -z $res ];then echo "$dir ..."else echo "$dir ..."fi”方法判断目录是否为空即可。

require用法:1、引入模块:在许多编程语言中,require用于引入外部模块或库,以便在程序中使用它们提供的功能。例如,在Ruby中,可以使用require来加载第三方库或模块;2、导入类或方法:在一些编程语言中,require用于导入特定的类或方法,以便在当前文件中使用它们;3、执行特定任务:在一些编程语言或框架中,require用于执行特定的任务或功能。

PHP中的glob()函数用于查找文件或目录,是一种强大的文件操作函数。它可以根据指定的模式匹配,返回文件或目录的路径。glob()函数的语法如下:glob(pattern,flags)其中,pattern表示要匹配的模式字符串,可以是一个通配符表达式,如*.txt(匹配以.txt结尾的文件),或者是具体的文件路径。flags是一个可选参数,用于控制函数

使用path/filepath.Dir函数获取文件路径的目录部分在我们的日常开发过程中,经常会涉及到文件路径的处理。有时候,我们需要获取文件路径的目录部分,即文件所在文件夹的路径。在Go语言中,可以使用path/filepath包提供的Dir函数来实现这个功能。Dir函数的签名如下:funcDir(pathstring)stringDir函数接收一个字
