PHP获取网页所有连接的方法(附demo源码下载)


Posted in PHP onMarch 30, 2016

本文实例讲述了PHP获取网页所有连接的方法。分享给大家供大家参考,具体如下:

function getHtml($url, $charset='utf-8')
{
  $curl = curl_init();
  //curl_setopt($curl, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:192.168.168.1', 'CLIENT-IP:192.168.168.1'));//IP
  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_REFERER, "");  //来路
  $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31';
  curl_setopt($curl, CURLOPT_USERAGENT, $user_agent);
  // 只需返回HTTP header
  // curl_setopt($curl, CURLOPT_HEADER, 1);
  // 页面内容我们并不需要
  // curl_setopt($curl, CURLOPT_NOBODY, 1);
  // 返回结果,而不是输出它
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  $html = curl_exec($curl);
  //$info = curl_getinfo($curl);
  //echo var_dump($info);
  if ($html === false) {
    //echo "cURL Error: " . curl_error($ch);
    return '';
  }
  curl_close($curl);
  if ($charset != 'utf-8')
  {
    $html = iconv($charset, "UTF-8", $html);
  }
  return $html;
}
header("Content-type: text/html; charset=utf-8");
include('simple_html_dom.php');
// 要打开 extension=php_mbstring.dll
//$url = 'http://www.baidu.com/s?wd=kaka';
$url = 'http://www.163.com/';
$str_html = getHtml($url, 'gbk');
$html = str_get_html($str_html);
$links = $html->find('a');
foreach($links as $link)
{
  $txt = trim($link->plaintext);
  echo $link->href . '[' . $txt . ']<br>';
}
$html = null;

完整实例代码点击此处本站下载。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
无数据库的详细域名查询程序PHP版(3)
Oct 09 PHP
打造计数器DIY三步曲(下)
Oct 09 PHP
PHP实现MySQL更新记录的代码
Jun 07 PHP
php如何解决无法上传大于8M的文件问题
Mar 10 PHP
php去掉URL网址中带有PHPSESSID的配置方法
Jul 08 PHP
微信支付开发告警通知实例
Jul 12 PHP
PHP开发APP端微信支付功能
Feb 17 PHP
PHP yield关键字功能与用法分析
Jan 03 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
Mar 25 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
Aug 03 PHP
ThinkPHP5&amp;5.1实现验证码的生成、使用及点击刷新功能示例
Feb 07 PHP
php中yii框架实例用法
Dec 22 PHP
PHP记录页面停留时间的方法
Mar 30 #PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
Mar 30 #PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 #PHP
Laravel路由设定和子路由设定实例分析
Mar 30 #PHP
PHP的Yii框架中过滤器相关的使用总结
Mar 29 #PHP
简介PHP的Yii框架中缓存的一些高级用法
Mar 29 #PHP
深入解析PHP的Yii框架中的缓存功能
Mar 29 #PHP
You might like
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
PHP 编程请选择正确的文本编辑软件
2006/12/21 PHP
PHP简洁函数小结
2011/08/12 PHP
ThinkPHP实现带验证码的文件上传功能实例
2014/11/01 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
php文件上传类完整实例
2016/05/14 PHP
雄兵连第三季海报曝光,艾妮熙德成主角,蔷薇新造型
2021/03/09 国漫
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
微信小程序 图片宽高自适应详解
2017/05/11 Javascript
详解vue中引入stylus及报错解决方法
2017/09/22 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
[29:23]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场1
2014/05/23 DOTA
[01:39:42]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
浅析Python中yield关键词的作用与用法
2016/11/29 Python
django 2.2和mysql使用的常见问题
2019/07/18 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
面试求职的个人自我评价
2013/11/16 职场文书
保荐人的岗位职责
2013/11/19 职场文书
培训协议书范本
2014/04/22 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
学校办公室主任岗位职责
2015/04/01 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
2019年大学推荐信
2019/06/24 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
聊聊redis-dump工具安装问题
2022/01/18 Redis
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS