PHP中require和include路径问题总结
由于“相对路径”中的“参照目录”是执行入口文件所在目录,“未确定”路径也比较容易混淆,因此最好的解决方法是使用“绝对路径”.
方案一:dirname(_file_)
例如b.php的内容如下,无论在哪里require b.php都是以b.php的路径为参照来require c.php的
$dir = dirname(__FILE__);
require($dir . '../c.php');
或是直接写成
require dirname(__FILE__) . '../c.php' ;
方案一: 定义一个通用函数 import.php
定义一个通用函数 import.php,将其设置为“自动提前引入文件”,在php.ini做如下配置
更改配置项(必须)
auto_prepend_file = “C:\xampp\htdocs\auto_prepend_file.php”
更改配置项(可选)
allow_url_include = On
import.php内容如下
function import($path) {
$old_dir = getcwd(); // 保存原“参照目录”
chdir(dirname(__FILE__)); // 将“参照目录”更改为当前脚本的径
require_once($path);
chdir($old_dir); // 改回原“参照目录”
}
这样就可以使用import()函数来require文件了,无论包含多少级“参照目录”都是当前文件