幕布斯6054654
2019-03-05 11:35:11
想請問我的include會有路徑的問題。。。假設(shè)a.php我在a.php引入 b.php
include 'php/b.php';
/php/b.php
這沒問題但是當(dāng)。。。
/user/c.php當(dāng)我的c想要引入b.php時
include '../php/b.php';
然後假設(shè)b.php裡面又有其他 include,然後又分別在不同目錄這樣我的c.php會說找不到那些目錄但是我引入b.php的路徑是對的有啥方式可以解決?
2 回答

精慕HU
TA貢獻(xiàn)1845條經(jīng)驗 獲得超8個贊
如果用相對地址,需要注意是針對你的 CWD (當(dāng)前工作目錄)為起點的,通常 HTTP 環(huán)境下 CWD 是你的網(wǎng)站根目錄,你可以用 getcwd() 查看和用 chdir() 切換。如果你實在搞不清楚,可以相對當(dāng)前文件的目錄來,比如 include __DIR__.'/../php/b.php';
,比較老的(好像是 5.1 以前吧)沒有 __DIR__
可以用 dirname(__FILE__)
替代。
--
我又看了下,您的目錄結(jié)構(gòu)是這樣的吧:
- a.php
-
php
- b.php
-
user
- c.php
如果用相對當(dāng)前文件的路徑在 c 里引入 b,c 里可寫作:
include __DIR__.'/../../php/b.php';
采用這種方式,無論您的 CWD 是哪個引入路徑都不會錯的。
當(dāng)然了,您如果有固定的入口文件,在里面定義幾個路徑常量,或預(yù)先設(shè)置好 include_path,后續(xù)代碼的 include 部分會更干凈些。如您上面的入口總是 a.php 的話,c.php 里想引入 b.php 也可以寫作 include 'php/b.php';
,這是因為通常情況下,include_path 里會包含 '.' (當(dāng)前工作目錄)。
- 2 回答
- 0 關(guān)注
- 426 瀏覽
添加回答
舉報
0/150
提交
取消