SoFunction
Updated on 2025-03-10

PHP filters non-existent image resources

Method 1:

The easiest way is to use fopen() to see if the file can be opened. If it can be typed, the file will exist.

<?php
$url = 'https:///images/';

if( @fopen( $url, 'r' ) ) 
{ 
 echo 'File Exits';
} 
else 
{
 echo 'File Do Not Exits';
}
?>

Method 2:

/**
    * Filter non-existent image resources
    *
    * @author wanggeng <wanggeng123@>
    * @return vodi
    */ 
   
  private static function _checkAll($url) 
  {  
    $curl = curl_init($url); 
    curl_setopt($curl, CURLOPT_NOBODY, true); 
    $result = false; 
    $res = curl_exec($curl); 
    if ($res !== false){ 
      $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); 
      if($statusCode == 200) { 
        $result = true; 
      } 
    } 
    curl_close($curl); 
    return $result; 
  } 

First create a curl link to the executed URL, that is, the image or file link
The initial variable is false
Or open the header information of the link. Each http request will have an http Code.
We will verify it based on this code
If the return code is 200, prove that the resource exists. Give the previous variable a true value. Otherwise, no value will be assigned.

Method 3:

CURL Method

CURL is a very useful class library. Let’s see how to use it to judge.

&lt;?php
$url2 = 'https:///';

$ch = curl_init();
$timeout = 10;
curl_setopt ($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$contents = curl_exec($ch);
//echo $contents;
if (preg_match("/404/", $contents)){
 echo 'The file does not exist';
}
?&gt;

If the file does not exist after curl_exec() is executed, the following information will be returned:

HTTP/1.1 404 Not Found
Date: Tue, 14 Feb 2012 05:08:34 GMT
Server: Apache
Accept-Ranges: bytes
Content-Length: 354
Content-Type: text/html

Use regular check if there is a 404, if there is, the file will not exist.

The above is the entire content of this article, I hope you like it.