我正在自学一些基本的抓取方法,但发现有时输入到代码中的URL返回404,这将困扰我所有的代码。
因此,我需要在代码顶部进行测试,以检查URL是否返回404。
这似乎是一个非常直截了当的任务,但是Google并没有给我任何答案。我担心我在寻找错误的东西。
一个博客建议我使用这个:
$valid = @fsockopen($url, 80, $errno, $errstr, 30);
然后测试以查看$ valid是否为空。
但是我认为给我带来问题的URL上有一个重定向,因此$ valid对于所有值都为空。也许我在做其他错误。
我还研究了“ head请求”,但还没有找到可以使用或尝试的任何实际代码示例。
有什么建议吗?卷曲是什么意思?
如果您使用的是PHP的curlbindings,则可以这样检查错误代码curl_getinfo
curl
curl_getinfo
$handle = curl_init($url); curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE); /* Get the HTML or whatever is linked in $url. */ $response = curl_exec($handle); /* Check for 404 (file not found). */ $httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE); if($httpCode == 404) { /* Handle 404 here. */ } curl_close($handle); /* Handle $response here. */