周梦康 发表于 2014-03-15 3112 次浏览 标签 : 我又弱爆了
包含文件的时候如果使用
require_once('../xxx.php');

会报错,错误提示类似于:

require_once(../xxx.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory 
include_once() [<a href='function.include'>function.include</a>]: Failed opening '../xxx.php' for inclusion (include_path='.::/mnt/hgfs/code/quankr2/xxx/')
原来不管是include还是require都应该是使用绝对路径,使用的是相对路径,则应该是相对于默认配置的inlcude_path

所以想使用相对路径,应该这样写:

require_once(dirname(__FILE__).'/../xx/xxx.php');

自定义include_path

//ThinkPHP的
//VENDOR_PATH自己定义的路径常量
// PATH_SEPARATOR分隔符
set_include_path(get_include_path() . PATH_SEPARATOR . VENDOR_PATH);
//Zend的
set_include_path('.' . PATH_SEPARATOR . './library'   . PATH_SEPARATOR . './application/models/'      . PATH_SEPARATOR . get_include_path()); 

评论列表

回复 亮亮 2016-02-17 17:41:37
学习了,这个包含文件的函数你是看了他们的源码?