检查另一个网站上是否存在文件

时间:2016-04-24 15:32:56

标签: php

我一直在尝试开发能够检查其他网站上是否存在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。我做错了什么?

1 个答案:

答案 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