想請問我的include會有路徑的問題。。。假設a.php我在a.php引入 b.php
include 'php/b.php';
/php/b.php
這沒問題但是當。。。
/user/c.php當我的c想要引入b.php時
include '../php/b.php';
然後假設b.php裡面又有其他 include,然後又分別在不同目錄這樣我的c.php會說找不到那些目錄但是我引入b.php的路徑是對的有啥方式可以解決?
2 回答
精慕HU
TA贡献1845条经验 获得超8个赞
如果用相对地址,需要注意是针对你的 CWD (当前工作目录)为起点的,通常 HTTP 环境下 CWD 是你的网站根目录,你可以用 getcwd() 查看和用 chdir() 切换。如果你实在搞不清楚,可以相对当前文件的目录来,比如 include __DIR__.'/../php/b.php';
,比较老的(好像是 5.1 以前吧)没有 __DIR__
可以用 dirname(__FILE__)
替代。
--
我又看了下,您的目录结构是这样的吧:
- a.php
-
php
- b.php
-
user
- c.php
如果用相对当前文件的路径在 c 里引入 b,c 里可写作:
include __DIR__.'/../../php/b.php';
采用这种方式,无论您的 CWD 是哪个引入路径都不会错的。
当然了,您如果有固定的入口文件,在里面定义几个路径常量,或预先设置好 include_path,后续代码的 include 部分会更干净些。如您上面的入口总是 a.php 的话,c.php 里想引入 b.php 也可以写作 include 'php/b.php';
,这是因为通常情况下,include_path 里会包含 '.' (当前工作目录)。
- 2 回答
- 0 关注
- 414 浏览
添加回答
举报
0/150
提交
取消