发布日期:2018-03-26
在PHP中,测试一个404定位符的简单方法?+ 查看更多
在PHP中,测试一个404定位符的简单方法?
+ 查看更多
发布日期:2018-03-26 14:29
分类:PHP
浏览次数:95
我正在自学基础爬虫,我发现有时候我嵌入代码中的URL会返回404,和我剩余的所有代码都有关联。
所以我需要一个在代码开头检查URL是否返回404的测试。
这似乎是个相当明确的任务,但是谷歌并没有给我任何答案。我担心我在搜索错误的东西。
一个博客推荐我用这个:
所以我需要一个在代码开头检查URL是否返回404的测试。
这似乎是个相当明确的任务,但是谷歌并没有给我任何答案。我担心我在搜索错误的东西。
一个博客推荐我用这个:
$valid = @fsockopen($url, 80, $errno, $errstr, 30);
然后测试看$valid是否为空。但我认为给我问题的URL有一个重定向,所以$valid出现空值。或者我做错了别的东西。我也研究了一个“头部请求”,但我还没有找到任何可以用或尝试的代码示例。
给我一些建议?还有用curl怎么样?
给我一些建议?还有用curl怎么样?
回答:
如果你使用PHP的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);