判断一个远程url是否有效我们通常可以这样来处理:
1、get_headers()函数判断
用这个函数返回值如下所示:
测试代码:
$header = get_headers("http://images.cnblogs.com/likecs_com/phphuaibei/201110/201110081434366759.png",1);
if(preg_grep("/200/", $header)){
echo "<pre>";
echo "匹配成功!";
echo "</pre>";
}else{
echo "匹配失败!";
}
if(preg_grep("/200/", $header)){
echo "<pre>";
echo "匹配成功!";
echo "</pre>";
}else{
echo "匹配失败!";
}
2、 CURL判断处理
直接来代码演示说明吧
//判断远程文件
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;
}
}
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;
}
}
echo check_remote_file_exists ($url);