加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP判断远程图片或文件或url是不是存在

发布时间:2023-06-01 12:36:44 所属栏目:PHP教程 来源:
导读:在php中要远程图片存不存在我们可以直接相关函数就可以了,像有curl,fopen之类的函数都可以快速的检测出来, 下面整理了几个例子,希望对各位有帮助.例子一,代码如下://判断远程文件 function check_remote_file_exist

在php中要远程图片存不存在我们可以直接相关函数就可以了,像有curl,fopen之类的函数都可以快速的检测出来, 下面整理了几个例子,希望对各位有帮助.

例子一,代码如下:

//判断远程文件  

function check_remote_file_exists($url)  

{  

$curl = curl_init($url);  

// 不取回数据  

curl_setopt($curl, CURLOPT_NOBODY, true);  

// 发送请求  

$result = curl_exec($curl);  

$found = false;  

// 如果请求没有发送失败  

if ($result !== false) {  

// 再检查http响应码是否为200  

$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);  

if ($statusCode == 200) {  

$found = true;  

}  

}  

curl_close($curl); 

return $found;  

当然也有很多其它方法,或多或少有些限制和缺陷,如:

(1),使用fopen()函数,它要在allow_url_open开启的状态下,否则会报错,代码如下:

$url = 'http://www.Cuoxin.com /img/qrcode_for_phpddt.JPG'; 

if(@fopen($url, 'r')) { 

    echo '文件存在'; 

} else { 

    echo '文件不存在'; 

}  

(2),get_headers取得服务器响应一个 HTTP 请求所发送的所有标头,效率较低,你可以测试下,代码如下:

$url = 'http://www.Cuoxin.com /img/qrcode_for_phpddt.JPG'; 

 

stream_context_set_default( 

    array( 

        'http' => array( 

             'timeout' => 1, 

            ) 

    ) 

); 

$headers = get_headers($url); 

if(preg_match('/200/',$headers[0])) { 

    echo '文件存在'; 

} else { 

    echo '文件不存在'; 

(3),file_get_contents()函数,代码如下:

 $opts = array( 

    'http'=>array( 

    'timeout'=>3, 

    ) 

); 

$context = stream_context_create($opts); 

$resource = @file_get_contents('http://www.Cuoxin.com /img/qrcode_for_phpddt.JPG', false, $context); 

 

if($resource) { 

    echo '文件存在'; 

} else { 

    echo '文件不存在'; 

}

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!