好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
在PHP中,测试一个404定位符的简单方法? 关闭 返回上一级  

在PHP中,测试一个404定位符的简单方法?
+ 查看更多

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

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号