我的 mysql 数据库中有大约 10000 个 url。我想使用 php 检查这些页面是否存在。
关键是我不想浪费我的带宽。
是否可以仅检查 http 状态代码?
这是我当前的 curl 代码?
$http = curl_init($url);
$result = curl_exec($http);
$http_status = curl_getinfo($http, CURLINFO_HTTP_CODE);
curl_close($http);
echo $http_status;
使用以下cURL 选项发出HEAD
请求:
CURLOPT_HEADER => true,
CURLOPT_NOBODY => true,
CURLOPT_CUSTOMREQUEST => 'HEAD',
您还可以使用:
CURLOPT_FAILONERROR => true,
每当返回错误的 HTTP 代码时都curl_exec
返回 false。
如果您有 10,000 个 URL,并且这是一项重复性任务,您可能希望查看curl_multi_*
函数并以 4、8 个或类似的批量处理 URL。提速意义重大。