PHP include路径问题

比如说有个文件www/myphp/a/1.php
然后有个文件 www/myphp/b/1.php 里面include(../a/a.php)
然后问题来了
www/myphp/c/1.php : include(../b/1.php)这个没问题
www/myphp/c/d/1.php也要 include(../../b/1.php)在这个就include不到a下的1.php了
求解决

第1个回答  2014-10-20
我建议你使用绝对路径,例如:include dirname(_FILE_).'填写你的路径';这样写不管你换到什么系统环境还是什么地址,都会是相对于你整个项目而言了,就不会出错了!追问

_FILE_我试了一下,好像是当前文件的路径吧,dirname(_FILE_).是反回上一层,然后dirname(dirname(_FILE_))再返回上一层,好像和../../没什么区别

第2个回答  2014-10-20
使用以 / 开头的路径就没有问题了。
/ 就是网站根目录。
第3个回答  2014-10-20

    使用绝对路径

    文件包含时,在同一级

第4个回答  2014-10-20
include引用是根据当前目录来寻找的文件,你可以试一试根据当前文件的所在目录编写路径
第5个回答  2014-10-20
php 用绝对路径,尽量不要用相对路径追问

绝对是路径那不是说换具服务器还得放在同一路径上???

追答

是你在所有的include 的文件,都直接用成绝对的路径
比方说,可以用php 内置全局变量 $_SERVER['DOCUMENT_ROOT']得出根路径
$project_dir=$_SERVER['DOCUMENT_ROOT']
那么可以定义
define DOCUMENT_ROOT =$project_dir.'/myphp/';

就include DOCUMENT_ROOT.‘A.php’

include DOCUMENT_ROOT.‘c/d/B.php’
...
类似这样。。
还有建议使用incluce_once,这样也可以避免重复引用

本回答被提问者采纳