我有DirectoryIndex index.php
并希望include './';
但我得failed to open stream: Is a directory
当然我可以include substr($someString, -1)==='/'?$someString.'index.php':$someString;
,但有更简单的方法吗?也许是.htaccess或php.ini中的东西?
不是答案。
答案 0 :(得分:2)
您不能包含目录。 PHP只接受一个有效的文件作为include的参数,所以如果你想能够使用“./”或“somedir /”并让它在该目录中找到index.php文件,你总是可以写一个将dir作为参数并返回索引文件的完整路径的函数。
类似的东西:
function index($dir){
return substr($dir, -1) === '/' ? $dir.'index.php' : $dir;
}
然后你可以调用include index("./");
或其他一些目录名,让它返回正确的字符串。
答案 1 :(得分:0)
如果要从当前目录中包含,则不需要任何路径:
include 'index.php';
否则,如果要包含远程文件,则应从http
开始include 'http://www.example.com/file.txt';
Attn:PHP 4.3.0之前的Windows版本的PHP不支持通过此功能访问远程文件,即使启用了allow_url_fopen也是如此。
否则,如果你想从相对路径中包含,你可以启动'/
...然后从主机根目录开始,或者'../
......从子目录开始说明。