0

假设我有一个文件夹,上面有一些文件夹和页面:

  • 文件夹A
    • PageA1.php
  • 文件夹B
    • 文件夹B1
      • PageB11.php
    • 文件夹B2
      • PageB21.php
    • PageB1.php
  • 文件夹C
    • PageC1.php

PageB11 上,我有:

require_once 'FolderB2/PageB21.php';

在PageB1上调用PageB11时:

require_once 'FolderB1/PageB11.php';

它工作正常。但是现在的问题是,虽然在PageB11上也有一个调用页面本身的函数(PageB11),然后错误显示:

Warning: require_once(FolderB2/PageB21.php): failed to open stream: No such file or directory in Path\FolderB\FolderB1\PageB11.php on line X

当我将PageB11上的 require_once 行更改为:require_once '../FolderB2/PageB21.php';时,它的工作!

我想做的是,如何使所有这些都可以在不同级别的文件夹中访问?有可能这样做吗?谢谢..

4

3 回答 3

1

如前所述,处理这种情况的最佳方法是通过其绝对路径引用每个文件。这是从文件系统的根开始的路径,与当前文件给出的相对路径不同。

在 PHP 中,你有一个神奇的常量__DIR__,它给出了当前文件的绝对路径。在每个包含/要求前面加上它,您将永远不会再看到该问题。

require_once __DIR__ . '/../FolderB2/PageB21.php';

您也可以使用realpath().

于 2012-08-07T06:37:21.280 回答
0

您可以添加文件的绝对路径

require_once('/home/my_host_account/www/FolderB2/PageB21.php');

请验证这是否有效。

于 2012-08-07T06:31:35.977 回答
0

您还可以在每个目录中创建引用您的原始文件的软链接。但这是一种解决方法,只有在所有其他方法都失败时才应使用。

于 2012-08-07T06:43:50.967 回答