-1

我有DirectoryIndex index.php并且想要include './';但我得到failed to open stream: Is a directory

我当然可以include substr($someString, -1)==='/'?$someString.'index.php':$someString;,但是有更简单的方法吗?也许在 .htaccess 或 php.ini 中有一些东西?

否是一个答案。

4

2 回答 2

2

您不能包含目录。PHP 只接受一个有效文件作为包含的参数,所以如果你想能够使用“./”或“somedir/”并让它在那个目录中找到 index.php 文件,你总是可以写一个以 dir 作为参数并返回索引文件的完整路径的函数。

就像是:

function index($dir){
   return substr($dir, -1) === '/' ? $dir.'index.php' : $dir;
}

然后您可以调用include index("./");或其他一些目录名称并让它返回正确的字符串。

于 2013-10-26T01:11:55.383 回答
0

如果要从当前目录中包含,则不需要任何路径:

include 'index.php';

否则,如果您想从远程文件中包含,您应该从 http 开始

include 'http://www.example.com/file.txt';

Attn:PHP 4.3.0 之前的 Windows 版本的 PHP 不支持通过此函数访问远程文件,即使启用了 allow_url_fopen 也是如此。

否则,如果你想从相对路径中包含,你可以开始'/......然后你从你的主机根目录开始,或者'../......从子目录开始。

于 2013-10-26T00:52:04.407 回答