get_headers
获取远程URL头信息。如果遇到需要设置超时的话, 需要使用
stream_context_set_default(
array(
'http' => array(
'timeout' => 5
)
)
);
stream_context_set_default 但是这个函数必须是5.3.0才能使用。
https://www.php.net/manual/zh/function.stream-context-set-default.php
对于 5.3以下的php用户,如何处理呢。必须只能使用 curl 函数啦。而且这个函数非常强大。
php curl
function get_header_curl($url, $time_out_sec=3) {
if(!function_exists('curl_init')) {
return false;
}
if(empty($url)) {
return false;
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER,true); // 是否获取 header 头信息
curl_setopt($ch, CURLOPT_NOBODY, true); // 是否不需要 body 数据。是 true, 否 false 会获取 body 数据
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($ch, CURLOPT_TIMEOUT, $time_out_sec); // 设置cURL允许执行的最长秒数。
if (($returnData = curl_exec($ch)) === false) {
return false;
}
curl_close($ch);
if($returnData) {
$arr = explode("\r\n", $returnData); // 分隔数据为数组数据。
$arr = array_filter($arr);
return $arr;
}
return false;
}
使用验证
$url = 'https://gallery.1x.com/images/user/dea5fafa877c74b705f4fc6ac9de6c1e-ld.jpg';
var_dump(get_header_curl($url, 1));
var_dump(get_header_curl($url, 3));
网友评论