2016-04-24 2 views
2

Я пытался разработать код, который бы проверял, существует ли файл 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

http://php.net /manual/en/function.error-reporting.php –

+0

@ Fred-ii- Но я не получаю никаких ошибок. Страница выполняется отлично, но в обоих случаях результат ложный, и я не понимаю, почему. – Webeng

+0

, может быть, их сайт не нравится, когда вас выбирают. –

ответ

2

file_exists использует физические пути, параметр, который необходимо указать, должен быть адресом на том сервере, на котором можно найти файл, а не URL-адрес! с другой стороны, метод заголовка должен работать нормально! но тестирование против 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, который позволяет использовать внешние URL-адреса должны быть включены

+0

Привет @Med Abida! Я попробовал свой метод на $ url, который не существует '$ url = 'http: // www.asdfasdzzfasdf.com/asd.pdf'', и он говорит, что он существует. Можете ли вы подтвердить, что для вас это одно и то же? – Webeng

+0

Я также получаю уведомление, в котором говорится: 'Примечание: неопределенное смещение: 0 в ....', которое относится к строке 'if (strpos ($ header_response [0]," 404 ")! == false) {' – Webeng

+0

уведомление исчезло, это было из-за функции сообщения об ошибке, которую я разместил внутри кода, однако код все еще говорит «файл существует» для всех файлов PDF, независимо от того, существуют они или нет. – Webeng

Смежные вопросы