php判断远程文件是否存在
php判断本地文件是否存在可以简单的使用is_file就可以实现。但是在部分情况下会检测远程文件是否存在,实现方式如下
1、可以使用fsocketopen,通过返回的状态码判断
2、使用curl,通过通过返回的状态码判断
3、可以直接通过get_headers的方法来判断状态码
以上方法是在远程url没有重定向的前提下,如果有重定向通过以下方法可以实现
<?php
$url = ‘http://www.baidu.com/link?url=77I2GJqjJ4zBBpC8yDF8xDhiqDSn1JZjFWsHhEoSNd85PkV8Xil-rckpQ8_kjGKNNq‘;
function fileExists($url){
stream_context_set_default(
array(
‘http‘ => array(
‘timeout‘ => 5,
)
)
);
$header = get_headers($url,1);
if(strpos($header[0],‘200‘)){
return true;
}
if(strpos($header[0],‘404‘)){
return false;
}
if (strpos($header[0],‘301‘) || strpos($header[0],‘302‘)) {
if(is_array($header[‘Location‘])) {
$redirectUrl = $header[‘Location‘][count($header[‘Location‘])-1];
}else{
$redirectUrl = $header[‘Location‘];
}
return fileExists($redirectUrl);
}
}
var_dump(fileExists($url));本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!