1

我有两个文件夹Provider并且Library在同一个目录中。Provider包括两个 php 文件ActiveRequests.phpPendingRequests.php. Library包含另一个文件夹Multilingual,其中包括Pagefactory.phplanguageSession.php

- Provider
  - ActiveRequests.php
  - PendingRequests.php
- Library
  - Multilingual
    - Pagefactory.php
    - languageSession.php

我喜欢PageFactory.php_ActiveRequests.php

      include_once __DIR__ . '/../library/Multilingual/PageFactory.php'

它工作正常。

但是当我试图以PageFactory.php同样PendingRequests.php的方式加入时

       include_once __DIR__ . '/../library/Multilingual/PageFactory.php'

它不工作。

当我试图包含在内languageSession.phpPendingrequests.php

       include_once __DIR__ . '/../library/Multilingual/languageSession.php'

它工作正常。

谁能帮我?PageFactory.php路径可能有什么问题?

我也尝试过,$_SERVER["DOCUMENT_ROOT"]但没有奏效。

4

3 回答 3

1

我刚刚解决了同样的问题,关键是如果你包含PageFactory.phpPendingRequests.php你必须更改每个PageFactory.php基于PendingRequests.php路径引用的文件。我用这种方式解决了我的问题。

于 2015-01-14T08:50:05.493 回答
0

尝试将路径打印为

echo __DIR__ . '/../library/Multilingual/PageFactory.php';

这样就可以检查文件的路径是否正确!

或使用,var_dump检查路径!

致那些对我的回答投反对票的人:打印路径是为了调试!

或者您可以将路径检查为:

var_dump(file_exists(__DIR__ . '/../library/Multilingual/PageFactory.php'));

__DIR__是父目录的路径。它给出了Provider使用时的路径PendingRequests.php

我认为问题在于您使用了 . 尝试../删除它!

例如, __DIR__ . '/../library/Multilingual/PageFactory.php'等同于

path/to/Provider/../library/Multilingual/PageFactory.php

所以最终的答案是删除“../”,它变成:

__DIR__ . '/library/Multilingual/PageFactory.php'

于 2013-11-07T14:45:08.520 回答
0

明显的问题是您在文件中包含以下内容:

include_once __DIR__ . '/../library/Multilingual/PageFactory.php'

虽然文件被称为Pagefactory.php.

在非 Windows 系统上,这会有所不同。确保大小写正确。

这可能只是您问题中的一个错字(其中的错字数量最初表明它可能是!)但这可能是问题的原因。

于 2013-11-07T14:47:37.763 回答