Home >Backend Development >PHP Tutorial >PHP filters non-existent image resources, _PHP tutorial
Method 1:
The easiest way is to use fopen() to see if the file can be opened. If it can be opened, the file will of course exist.
<?php $url = 'http://www.bkjia.com/images/test.jpg'; if( @fopen( $url, 'r' ) ) { echo 'File Exits'; } else { echo 'File Do Not Exits'; } ?>
Method 2:
/** * 筛选不存在的图片资源 * * @author wanggeng <wanggeng123@vip.qq.com> * @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, which is a link to the image or file
Initialize a variable to false
Or open the header information of the link. Each http request will have an http Code
We will verify based on this code
If the return code is 200, it proves that the resource exists. Give the previous variable a true value, otherwise no value will be assigned
Method three:
CURL method
CURL is a very useful class library. Let’s see how to use it to judge.
<?php $url2 = 'http://www.bkjia.com/test.jpg'; $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 '文件不存在'; } ?>
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 expressions to see if there is a 404. If so, the file does not exist.
The above is the entire content of this article, I hope you all like it.