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 相关文章推荐
967 个函式
Oct 09 PHP
PHP4(windows版本)中的COM函数
Oct 09 PHP
优化PHP代码的53条建议
Mar 27 PHP
PHP控制网页过期时间的代码
Sep 28 PHP
破解.net程序(dll文件)编译和反编译方法
Jan 31 PHP
file_get_contents获取不到网页内容的解决方法
Mar 07 PHP
zf框架的session会话周期及次数限制使用示例
Mar 13 PHP
PHP基于CURL进行POST数据上传实例
Nov 10 PHP
PHP实现的json类实例
Jul 28 PHP
在laravel中使用with实现动态添加where条件
Oct 10 PHP
PHP调用接口API封装的例子
Oct 11 PHP
PHP中用Trait封装单例模式的实现
Dec 18 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
给php新手谈谈我的学习心得
2007/02/25 PHP
PHP封装的字符串加密解密函数
2015/12/18 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
javascript实现的动态添加表单元素input,button等(appendChild)
2007/11/24 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
jquery转盘抽奖功能实现
2015/11/13 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
js canvas实现画图、滤镜效果
2018/11/27 Javascript
vue实现下拉加载其实没那么复杂
2019/08/13 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
Python实现的二维码生成小软件
2014/07/11 Python
python统计一个文本中重复行数的方法
2014/11/19 Python
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
Python grequests模块使用场景及代码实例
2020/08/10 Python
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
JAVA招聘远程笔试题
2015/07/23 面试题
商务英语应届生自我鉴定
2013/12/08 职场文书
物业保安主管岗位职责
2013/12/25 职场文书
给导游的表扬信
2014/01/10 职场文书
体育专业学生自我评价范文
2014/01/17 职场文书
汽车维修工岗位职责
2014/02/12 职场文书
社会治安综合治理管理责任书
2014/04/16 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
2015年除四害工作总结
2015/07/23 职场文书
2016特色励志班级口号
2015/12/24 职场文书
深入讲解Vue中父子组件通信与事件触发
2022/03/22 Vue.js