我在这条路径test.php
test1.php
和http://172.16.15.11/appointment/src/
我正在检查文件test1.php
是否存在但是当我给absolute path
时它不起作用:
我在test.php
//giving absolute path not working
var_dump(file_exists('http://172.16.15.11/appointment/src/test1.php')); //return false
//but when i give relative path it does work
var_dump(file_exists('test1.php')); //return true
要交叉检查,我在include
test.php
include('http://172.16.15.11/appointment/src/test1.php'); //but in this case absolute path work
如果我在给予绝对路径的时候我的作品
1. include('http://172.16.15.11/appointment/src/test1.php');
2. header('location:http://172.16.15.11/appointment/src/test1.php');
但是当我检查这个文件时不起作用:
var_dump(file_exists('http://172.16.15.11/appointment/src/test1.php')); //return false
注意 - 我没有任何.htaccess文件
答案 0 :(得分:3)
</b>
可以使用手册页中的某些网址,但无法保证...
提示从PHP 5.0.0开始,此函数也可以与某些URL一起使用 包装。请参阅支持的协议和包装器以确定哪个 包装器支持stat()系列功能。
你可以试试......
</html>
(来自http://www.php.net/manual/en/function.file-exists.php#75064)
</html>
也支持文件包装器(来自手册)......
如果&#34; URL 包括包装&#34;在PHP中启用,您可以指定文件 包含使用URL(通过HTTP或其他支持的包装器 - 请参阅 支持协议列表的协议和包装器)而不是 本地路径名。
但作为一项规则,我不会在网址中包含任何内容。
答案 1 :(得分:0)
问题是file_exists
适用于文件系统目录路径,而不适用于URL。
如果您想使用绝对路径进行检查,可以使用getcwd()
file_exists (getcwd() . "/test1.php");
答案 2 :(得分:0)
不要忘记301等...只纠正200 ... 如果您不希望在错误日志中发出通知,请始终检查isset。
$headers = @get_headers('http://www.examle.com/somefile.jpg');
if(isset($headers[0]) AND $headers[0] == 'HTTP/1.1 200 OK') {
$exists = true;
}
else {
$exists = false;
}