在PHP上的各种级别的文件夹中访问路径

时间:2012-08-07 06:19:51

标签: php path

假设我有一个包含一些文件夹和页面的文件夹:

  • FolderA
    • PageA1.php
  • FolderB中
    • FolderB1
      • PageB11.php
    • FolderB2
      • PageB21.php
    • PageB1.php
  • FolderC
    • 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';时,它正常工作!

我想做的是,如何在各种级别的文件夹中访问所有内容?有可能这样做吗?感谢..

3 个答案:

答案 0 :(得分:1)

如上所述,处理此类情况的最佳方法是通过其绝对路径引用每个文件。这是来自文件系统根目录的路径,与当前文件相对给出的相对路径不同。

在PHP中,你有一个神奇的常量__DIR__,它给出了当前文件的绝对路径。用它来预先包含每个include / require,你再也不会看到这个问题了。

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

您还可以使用realpath()

答案 1 :(得分:0)

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

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

请确认这是否有效。

答案 2 :(得分:0)

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