關於 php include 有路徑的問題!!

想請問我的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的路徑是對的
有啥方式可以解決?

幕布斯6054654
浏览 415回答 2
2回答

精慕HU

如果用相对地址,需要注意是针对你的 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 里会包含 '.' (当前工作目录)。

慕姐4208626

我的php是7.2.2,新的做法是 「__DIR__」嗎?
打开App,查看更多内容
随时随地看视频慕课网APP