想請問我的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的路徑是對的
有啥方式可以解決?
想請問我的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的路徑是對的
有啥方式可以解決?
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答569 阅读✓ 已解决
785 阅读
如果用相对地址,需要注意是针对你的 CWD (当前工作目录)为起点的,通常 HTTP 环境下 CWD 是你的网站根目录,你可以用 getcwd() 查看和用 chdir() 切换。如果你实在搞不清楚,可以相对当前文件的目录来,比如
include __DIR__.'/../php/b.php';
,比较老的(好像是 5.1 以前吧)没有__DIR__
可以用dirname(__FILE__)
替代。--
我又看了下,您的目录结构是这样的吧:
php
user
如果用相对当前文件的路径在 c 里引入 b,c 里可写作:
采用这种方式,无论您的 CWD 是哪个引入路径都不会错的。
当然了,您如果有固定的入口文件,在里面定义几个路径常量,或预先设置好 include_path,后续代码的 include 部分会更干净些。如您上面的入口总是 a.php 的话,c.php 里想引入 b.php 也可以写作
include 'php/b.php';
,这是因为通常情况下,include_path 里会包含 '.' (当前工作目录)。