How to check whether an image (physical file) exists on an external web server via an absolute URL [duplicate]

0

I usually use the PHP file_exists function to do this when I'm developing remotely, but now I need to know when the image exists in an absolute URL of an external web server.

Editing the question to include more information:

I tested all these methods on both the local server and a web server other than www.issam.com and none of them returns the correct value, can anyone tell me if this is possible? >

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.';
}
    
asked by anonymous 11.01.2017 / 19:29

2 answers

2

You can do this in many ways.

In addition to the option quoted by @Lucas Caires, could be ...

Using 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.';
}

Using 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.';
}

NOTE: These two options are interesting as they do not download the complete file. Getting much faster.

I hope I have helped

    
11.01.2017 / 19:35
0

You can use the file_get_contents () function to do this.

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

Remembering this function works, you will need to enable allow_url_fopen in your php.ini. If you can not enable this, there is an alternative to using the cURL library. Here is an example usage .

    
11.01.2017 / 19:34