我的mysql数据库中有大约10000个url ..我想检查这些页面是否存在使用php。
重点是我不想浪费我的带宽。
是否可以仅检查http状态代码?
这是我目前的卷曲代码?
$http = curl_init($url);
$result = curl_exec($http);
$http_status = curl_getinfo($http, CURLINFO_HTTP_CODE);
curl_close($http);
echo $http_status;
答案 0 :(得分:3)
使用以下cURL options发出HEAD
请求:
CURLOPT_HEADER => true,
CURLOPT_NOBODY => true,
CURLOPT_CUSTOMREQUEST => 'HEAD',
你也可以使用:
CURLOPT_FAILONERROR => true,
每当返回错误的HTTP代码时,curl_exec
都返回false。
如果您有10,000个网址并且这是一项重复性任务,您可能需要查看curl_multi_*
个函数并分批处理4个,8个或类似的URL。加速很快。