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 中英文混合排版中处理字符串常用的函数
Apr 12 PHP
php 编写安全的代码时容易犯的错误小结
May 20 PHP
php获取后台Job管理的实现代码
Jun 10 PHP
跟我学Laravel之视图 &amp; Response
Oct 15 PHP
php 把数字转换成汉字的代码
Jul 21 PHP
PHP文件上传类实例详解
Apr 08 PHP
PHP并发多进程处理利器Gearman使用介绍
May 16 PHP
浅谈php(codeigniter)安全性注意事项
Apr 06 PHP
thinkPHP显示不出验证码的原因与解决方法分析
May 20 PHP
php爬取天猫和淘宝商品数据
Feb 23 PHP
php使用scandir()函数扫描指定目录下所有文件示例
Jun 08 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
Apr 07 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
YII Framework框架教程之日志用法详解
2016/03/14 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
php读取本地json文件的实例
2018/03/07 PHP
PHP7 参数处理机制修改
2021/03/09 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
Dom与浏览器兼容性说明
2010/10/25 Javascript
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
微信小程序实现图片滚动效果示例
2018/12/05 Javascript
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
解决Python安装后pip不能用的问题
2018/06/12 Python
Python线程同步的实现代码
2018/10/03 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
python中round函数如何使用
2020/06/19 Python
python如何删除文件、目录
2020/06/23 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
党课知识竞赛主持词
2014/04/01 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
2015年征兵工作总结
2015/07/23 职场文书
小学副班长竞选稿
2015/11/21 职场文书
小学教师暑期培训心得体会
2016/01/09 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
《弟子规》读后感:知廉耻、明是非、懂荣辱、辨善恶
2019/12/03 职场文书
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python