相对路径
相对路径是以.开头的路径。 例如,
./a/a.php (相对于当前目录) ) ) ) )。
./common.inc.php (相对高级目录) ) ) )。
相对路径需要一个参考目录来确定文件的最终路径。 在包含分析中,无论嵌套层次结构如何,此引用目录都是程序可执行门户文件所在的目录。
例1
中require './b/b.php '; //那么B=[SITE]/app/test/b/b.php
中require './c.php '; //的话C=[SITE]/app/test/c.php不是[SITE]/app/test/b/c.php
例2
中require './b/b.php '; //那么B=[SITE]/app/test/b/b.php
中require './c.php '; //的话C=[SITE]/app/c.php不是[SITE]/app/test/c.php
例3
中require './b.php '; //那么B=[SITE]/app/b.php
中require './c.php '; //的话C=[SITE]/app/c.php不是[SITE]/c.php
绝对传球
绝对路径可以是以/开头的路径,也可以是以驱动器号开头的路径(如windows c :/),完整路径可以唯一确定文件的最终地址,而无需参考路径。 例如:
/apache/wwwroot/site/a/a.php
c:/wwwroot/site/a/a.php
绝对路径更简单、更难混淆,require|inclue支持磁盘中的文件。
require '/wwwroot/XXX.com/app/test/b.PHP '; //Linux中
require ' c :/wwwroot/XXX.com/app/test/b.PHP '; //windows中
dirname__FILE__ )计算为绝对路径格式的目录,但请注意__file__是幻像常数,与编写此语句的php文件是相同的绝对路径因此,dirname(__filltants
路径还没有确定
以.或/开头、也不是windows驱动器号的:/开头的路径,例如:
a/a.php
common.inc.php
首先,在include_path定义的包含目录中连接“不确定路径”。 在找到存在的文件时包含成功终止,如果找不到则执行require语句的php文件所在的目录中,通过连接[未确定路径]的完整路径查找文件。 文件存在则包含正常结束,不存在则包含文件不存在,表示错误。 路径不确定的话容易混淆,不推荐。
5 .解决方案
由于“相对路径”中的“引用目录”是包含可执行门户文件的目录,“未确定”路径也很混淆,因此使用“绝对路径”是最好的解决方案; 例如,b.php的内容如下,无论在哪里,require b.php都会参考b.php的路径获取require c.php的
$dir=dirname(__file_ );
require($dir.'./c.PHP ' );
或者,定义公共函数import.php,将其设置为“自动预捕获文件”,然后在php.ini中配置为
更改配置项目(必需) auto _ prepend _ file=' c : (xampp ) htdocs ) auto_prepend_file.PHP '
更改配置项目(可选) allow_url_include=On
import.php的内容如下
函数导入($ path ) {
$old_dir=getcwd (; //保存原始的“参照目录”
chdir(dirname ) __file__ ); //将“引用目录”更改为当前脚本的绝对路径
require_once($path;
chdir($old_dir; //返回到原始的“引用目录”
}
这样,可以使用import ) )函数来请求require文件。 无论包含哪个级别的“引用目录”,都是当前文件