为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
幕布斯6054654 2019-03-05 11:35:11
想請問我的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 里会包含 '.' (当前工作目录)。

查看完整回答
反对 回复 2019-03-18
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

我的php是7.2.2,新的做法是 「__DIR__」嗎?

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 414 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信