【问题标题】:Why does a PHP include file within a file included with an absolute path work but not with a relative path? [closed]为什么在包含绝对路径的文件中包含 PHP 包含文件而不是相对路径? [关闭]
【发布时间】:2015-11-08 23:46:19
【问题描述】:

我的 Web 根目录中名为 inc 的目录中有以下三个文件:

  • a.php
  • b.php
  • c.php

a.php 内,我有以下代码:

<?php

  include('b.php');
  include('c.php');

如果我使用绝对路径将a.php 包含在inc 目录之外的另一个文件中,则b.phpc.php 的包含语句可以正常工作。但是,如果我使用相对路径将a.php 包含到inc 目录之外的文件中,则b.phpc.php 的包含语句不起作用。

这是为什么呢?

【问题讨论】:

  • Include() 路径不是相对于彼此,而是相对于当前工作目录。 CWD 是调用脚本的位置。
  • mario,您的评论是有道理的,但如果是这样的话,为什么a.php(见上文)中的代码会在 a.php 包含在另一个具有绝对路径但不包含相对路径?
  • 我怀疑这是否真的有效。这个例子太抽象了,说不出来。 (将打印语句添加到 a/b/c 以确保它们真正运行,而不仅仅是例如错误抑制。之后还要调试 include_path。)
  • 你是对的!我不知道为什么,但是以前它不起作用,现在,当我将a.php 包含在相对或绝对路径中时,它就起作用了。我很困惑,但它有效,所以我想我不会抱怨。谢谢。
  • 向我们展示您使用的相对路径以及它所在的 php 文件

标签: php include relative-path include-path absolute-path


【解决方案1】:

您应该使用魔术常量__DIR__,如

<?php include __DIR__ . '/b.php';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 2014-05-19
    • 2011-12-08
    • 1970-01-01
    相关资源
    最近更新 更多