【发布时间】:2023-03-08 01:46:01
【问题描述】:
我想解析很多 URL 以仅获取它们的状态代码。
所以我做的是:
$handle = curl_init($url -> loc);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_HEADER , true); // we want headers
curl_setopt($handle, CURLOPT_NOBODY , true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($handle);
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
curl_close($handle);
但是一旦将“nobody”选项设置为 true,返回的状态码就会不正确(google.com 返回 302,其他站点返回 303)。
由于性能损失,无法将此选项设置为 false。
有什么想法吗?
【问题讨论】:
-
执行自定义请求并仅发出 HEAD。做一个全面的get也会转移身体。 head 只给你标题。
-
@MarcB 你能告诉我你的假设代码吗?
-
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'HEAD')
标签: php performance curl http-status-codes