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相当简单的分页类
Oct 02 PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
Feb 16 PHP
PHP中time(),date(),mktime()区别介绍
Sep 28 PHP
php使用mb_check_encoding检查字符串在指定的编码里是否有效
Nov 07 PHP
php ckeditor上传图片文件名乱码解决方法
Nov 15 PHP
PHP伪静态Rewrite设置之APACHE篇
Jul 30 PHP
smarty表格换行实例
Dec 15 PHP
PHP+APACHE实现网址伪静态
Feb 22 PHP
php中删除数组的第一个元素和最后一个元素的函数
Mar 07 PHP
ucenter中词语过滤原理分析
Jul 13 PHP
PHP常用函数之格式化时间操作示例
Oct 21 PHP
php字符串倒叙
Apr 01 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实现html标签闭合检测与修复方法
2015/07/09 PHP
PHP实现递归复制整个文件夹的类实例
2015/08/03 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
JS中setTimeout()的用法详解
2013/04/14 Javascript
利用JS进行图片的切换即特效展示图片
2013/12/03 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
JavaScript基础知识学习笔记
2014/12/02 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
EasyUI布局 高度自适应
2016/06/04 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
JS获取checkbox的个数简单实例
2016/08/19 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
js中less常用的方法小结
2017/08/09 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
python实战教程之自动扫雷
2018/07/13 Python
Python读写zip压缩文件的方法
2018/08/29 Python
Django ORM 聚合查询和分组查询实现详解
2019/08/09 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
python+opencv边缘提取与各函数参数解析
2020/03/09 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
高三毕业生自我鉴定
2013/12/20 职场文书
劳资协议书范本
2014/04/23 职场文书
校庆口号
2014/06/20 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript