首页 > 解决方案 > 使用 PHP 的 include 语句时遇到问题

问题描述

我一辈子都无法让 PHP 的“包含”语句处理与使用“包含”语句的文件位于同一目录中的文件以外的任何文件。当我尝试包含另一个目录中的任何文件时,整个应用程序都会中断并且没有加载。

我把那个脚本转储进去,说:

/var/www/html/fooA/testClass.php

并尝试使用:

/var/www/html/different_than_fooA/include_testClass.php

应用程序中断。但是,如果我包括:

/html/foo_1.php

在:

/html/foo_2.php

一切正常...

我保证这不是一个简单的语法问题,我已经尝试过尽可能多地编写它,在前面使用斜杠,或者在前面不使用斜杠,整个目录和部分目录,IP 地址,甚至尝试从其他服务器加载。我的猜测是它与 PHP 或 Apache 的配置方式有关。我可以在互联网上找到几乎没有关于这件事的任何内容,任何建议都会很棒。

<?php
    // THIS FILE IS TEST/TEST02.php

    require 'TEST01.php';
    $V = new X();
    $V->Z();
?>

标签: phpapachelamp

解决方案


你总是可以使用 PHP 的魔法常量,这样你就可以确定它会为你找出正确的路径。

/* lets say we have a folder structure like below
 *
 * - FolderA
 *  -- fileA.php
 * - FolderB
 *  -- fileB.php
 */

 // We require fileA.php in fileB.php, here is how we can do it

 require __DIR__.'/../FolderA/fileA.php';

这是文档的链接。https://www.php.net/manual/en/language.constants.predefined.php


推荐阅读