我一直在尝试开发能够检查其他网站上是否存在pdf文件的代码。出于测试目的,我在网上找到了一个随机的pdf文件:
http://www.tutorialspoint.com/php/php_tutorial.pdf
我尝试了以下代码,两种方法都没有用:
方法1:
$path1 = 'http://www.tutorialspoint.com/php/php_tutorial.pdf';
if (file_exists($path1))
{
echo "found!";
}
else
{
echo "not found";
}
//RESULT: not found
方法2:
function UR_exists($url){
$headers=get_headers($url);
return stripos($headers[0],"200 OK")?true:false;
}
if(UR_exists('http://www.tutorialspoint.com/php/php_tutorial.pdf'))
echo "This page exists";
else
echo "This page does not exist";
//RESULT: This page does not exist
页面在两种情况下都可以正常运行,但结果始终是文件不存在,当我知道它存在时lol。我做错了什么?
答案 0 :(得分:3)
file_exists
使用物理路径,您需要提供的参数应该是可以找到文件的服务器上的地址,而不是网址!
另一方面头方法应该工作正常!但是对404头响应的测试值得尝试,你可以这样做:
$url = "http://www.tutorialspoint.com/php/php_tutorial.pdf";
$header_response = get_headers($url);
if (header_response) {
if ( strpos( $header_response[0], "404" ) !== false ){
// PDF DOES NOT EXIST
echo "PDF DOES NOT EXIST";
}else{
// PDF EXISTS!!
echo "PDF EXISTS";
}
}else {
echo "PDF DOES NOT EXIST";
}
请注意,应启用允许您使用外部网址的allow_url_fopen = 1