Как проверить изображение (физический файл) существует или не на внешний веб-сервер через абсолютный URL - [дубликат]


Обычно использую функцию file_exists от PHP чтобы сделать это, когда я разрабатываю удаленно, но теперь мне нужно знать, когда изображение существует или нет в URL абсолютного внешнего веб-сервера.

отредактировать вопрос, чтобы включить больше информация:

Тестировал все эти методы, как на локальном сервере, так и на веб-сервере другой www.issam.com.br и не возвращает правильное значение, кто-нибудь знает, если это возможно?

Imagem que existe = http://www.issam.com.br/ximages/produtos/356031.jpg
Imagem que não existe = http://www.issam.com.br/ximages/produtos/356030.jpg

if(file_exists('http://www.issam.com.br/ximages/produtos/356030.jpg')){
   echo"sim";
}else{
  echo"nao";
}


if(file_get_contents('http://www.issam.com.br/ximages/produtos/356030.jpg')) {
   echo "Existe";
}else{
   echo"nao";
}

$arquivo = 'http://www.issam.com.br/ximages/produtos/356030.jpg';
$file_headers = @get_headers($arquivo);
if(!$file_headers || $file_headers[0] == 'HTTP/1.1 404 Not Found') {
   echo 'Arquivo não existe.';
}else {
echo 'Arquivo existe.';
}

$arquivo = 'http://www.issam.com.br/ximages/produtos/356030.jpg';
if (!$fp = curl_init($arquivo)){
   echo 'Arquivo não existe.';
}else{
    echo 'Arquivo existe.';
}
 1
php
Author: denis, 2017-01-11

2 answers

Можно сделать несколькими способами.

Кроме того, вариант цитирует @Lucas Caires, может быть...

, Используя get_headers:

$arquivo = 'http://www.seu_dominio.com.br/seu_caminho/absoluto/arquivo.jpg';
$file_headers = @get_headers($arquivo);
if(!$file_headers || $file_headers[0] == 'HTTP/1.1 404 Not Found') {
    echo 'Arquivo não existe.';
}else {
     echo 'Arquivo existe.';
}

, Используя CURL:

$arquivo = 'http://www.seu_dominio.com.br/seu_caminho/absoluto/arquivo.jpg';
if (!$fp = curl_init($arquivo)){
   echo 'Arquivo não existe.';
}else{
   echo 'Arquivo existe.';
}

ПРИМЕЧАНИЕ: Эти два варианта довольно интересны, поскольку не являются загрузить полный файл. Становится гораздо быстрее.

Я Надеюсь, что помог

  3
Author: Allan Andrade, 2017-01-11 18:35:03

Вы можете использовать функцию file_get_contents() для этого.

<?php
if(file_get_contents('http://www.exemplo.com.br/imagem.jpg')) {
 echo "Existe";
}
?>

, Вспоминая эту функцию, необходимо включить allow_url_fopen в php.ini. Если вы не можете включить это, есть вариант использовать библиотеку cURL. Вот пример использования.

  0
Author: Lucas Caires, 2017-01-11 19:01:47