检测死链接的原理是发起一个http请求,然后分析返回的状态码,如果是200,就说明链接可用,如果是404或者50x等等,就说明是死链接。

很容易想到用curl去完成这个任务,我今天分享一个不依赖curl并且更加高效的方法:使用socket。

步骤:

1、使用socket建立一个TCP连接:

$socket = fsockopen('ssl://www.baidu.com', 443, $errorno, $erromsg, 5);

if (empty($socket)) throw new \RuntimeException('连接服务器失败');

//因为baidu.com是https协议,所以需要加上ssl://前缀,端口使用443

//若你需要检测的网站是http协议,那么就去掉前缀,端口使用80

$socket = fsockopen('www.test.com', 80, $errorno, $erromsg, 5);

2、发起一个http请求:

// 检测链接为:https://www.baidu.com/img/bd_logo1.png?where=super

$request = "GET /img/bd_logo1.png?where=super HTTP/1.1\r\n\r\n";

fwrite($socket, $request);

3、读取http响应头的第一行并关闭TCP连接:

$response = fgets($socket);

fclose($socket);

echo $response;

返回值为:

HTTP/1.1 200 OK

状态码为200,说明链接是可用的。

这种方式的优点:

1、没有外部依赖。fsockopen是PHP内置的方法,只要安装了php4.3+版本,都是可用的。

2、效率高。只读取响应内容的第一行,避免了下载全部内容。若你检测的链接是很大的图片,这种方式的优势就显示出来了。

PHP快速链接,PHP快速检测死链接相关推荐

  1. 浅谈死链接和错误链接,如何防范死链接发生

    最近我想我学了这么长时间的seo了,也该总结一下,每天一小总结,也作为自己的seo路程的一个总结.下面呢,我现在稍微介绍一下在seo概念性问题. 什么事死链接和错误链接,如何防范死链接发生? 死链接是 ...

  2. python实现网站测速软件_python实现网站友情链接查询与网站死链接查询的两个脚步...

    在前几天写的一建抓取网站所有链接的脚步往后衍生了以下的两个脚步,一个是查询网站友情链接,另一个是查询网站的死链.我这里只是初步实现了功能,还有很多地方需要优化,比如说查询友情链接脚步会存在带www与不 ...

  3. 怎么清理mysql的死链接_什么是死链接?如何正确处理死链接

    什么是死链接?我们应该如何正确处理死链接呢?小刚SEO为你解答. 什么是死链接? 因链接更改或搜索引擎所收录的网站路径被删除了,形成没法打开的死链接. 死链接的危害: 1.死链数据过多时,对网站访问体 ...

  4. 360度全方位解析死链接

    相信业内人士都知道什么叫做死链接,在这里我再赘述一下, 死链接指的就是失效的链接.错误链接,它原本是正常的,但是后来就变成无效的链接,使得网页中打开这个死链接地址,服务器回应的就是打不开的页面或友好的 ...

  5. 死链接是如何产生的呢?

    死链接简单理解就是无法打开的链接,如果一个网站存在大量死链接,就会导致网站评级下降.另外,如果死链接太多,就会导致网站收录量减少,权重也会降低. 那么,死链接是如何产生的呢? 1.网站改版 网站在进行 ...

  6. 短链接如何快速生成?短链接的应用场景有哪些?

    当我们的手机收到一串密密麻麻的长链接时,相信绝大多数人都没有点开它的欲望.因此将较长的链接缩成短连接,是营销过程中的一个重要手段.短链接可以将冗长的网址进行精简,长度只有原来的三分之一甚至四分之一,不 ...

  7. 新手站长如何快速交换高质量的友情链接

    相信PR为零的站长朋友在交换友情链接的时候遇到打过不少麻烦吧,因为网站刚起步,没有什么权重,很多站长不愿意交换这样的站.我在做印度电影网的时候也遇到了同样的问题,好不易找了几个站长,谈了半天下来却得到 ...

  8. 快速提高网站流量的外部链接发布与推广技巧

    众所周知,SEO优化最基础的就是要做好站内优化与站外推广,而外链是站外SEO优化推广的重要手段之一.高质量的外部链接能够为网站提高网站的流量和提高网站的知名度.那么如何有效的做好SEO外链建设呢? 一 ...

  9. mysql清理死链接_对MySQL的死连接Sleep的进程的来源研究

    当前的连接数: mysql> show status like '%Threads_connected%'; +-------------------+-------+ | Variable_n ...

  10. python实现目标识别眼镜_用Python快速实现YOLO目标检测

    文章也同步更新到微信公众号:R语言和Python学堂想获取本文完整代码和数据的下载链接,可关注微信公众号"R语言和Python学堂",并回复发文日期"20181223&q ...

最新文章

  1. linux中光标向上调一行命令,Linux vi 中移动光标 命令
  2. 查看ocx控件CLSID的方法
  3. 关于Enterprise Library 两个网占.
  4. Python代码运行不够流畅?看大神如何多角度优化!
  5. c++局域网主动ftp_如何在局域网中实现 ARP 攻击
  6. hdu - 1072 Nightmare(bfs)
  7. MySQL 的存储引擎
  8. pivot 用order by 语句排序时,老是超时的解决办法,超Easy
  9. Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作
  10. Zynq定时器系统(上)—全局和私有定时器
  11. HTML-ViewParse的Controller层插件开发小结
  12. library的英语怎么读音_library怎么读声音
  13. datagrid 什么时候结束编辑_孕吐到底什么时候结束
  14. LCP 07. 传递信息
  15. 软件技术方案_智慧工地整体解决方案核心系统有哪些?
  16. Python教学视频(九)math模块的使用
  17. 封装SIP和SOIC有什么区别
  18. 960H 、SDI和百万高清,谁会率先出局?
  19. Ubuntu16.04 微信网页版安装
  20. 容器云系列之容器技术相关概念介绍

热门文章

  1. 【CF1467C】Three Bags 题解
  2. python 实现串口通信USB转232自闭环、USB转485测试
  3. Chatopera 张凯:创业的信念,为了小家和大家
  4. 重温C语言五:运算符的学习
  5. 统一批量修改word页眉页脚
  6. android代码禁用软键盘,Android 禁用软键盘
  7. 显卡天梯图vs专业计算卡丽台T4,v100vs混合精度训练
  8. 【前端就业课 第一阶段】HTML5 零基础到实战(二)超链接
  9. c++ Win x64 注册表操作
  10. 【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part3前端搭建与可视化