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 06 PHP
php统计文件大小,以GB、MB、KB、B输出
May 29 PHP
php中使用临时表查询数据的一个例子
Feb 03 PHP
php5.3以后的版本连接sqlserver2000的方法
Jul 28 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
Nov 18 PHP
thinkphp3.2.2实现生成多张缩略图的方法
Dec 19 PHP
php去除头尾空格的2种方法
Mar 16 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
Feb 23 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
PHP堆栈调试操作简单示例
Jun 15 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
Mar 01 PHP
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
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实现Ftp用户的在线管理的代码
2007/03/06 PHP
php面向对象中static静态属性与方法的内存位置分析
2015/02/08 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
Yii框架的布局文件实例分析
2019/09/04 PHP
js function使用心得
2010/05/10 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
AngularJS入门教程之XHR和依赖注入详解
2016/08/18 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
2019/11/12 Javascript
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
运用TensorFlow进行简单实现线性回归、梯度下降示例
2018/03/05 Python
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
python中协程实现TCP连接的实例分析
2018/10/14 Python
Django对models里的objects的使用详解
2019/08/17 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
EJB与JAVA BEAN的区别
2016/08/29 面试题
学生会竞选自荐信
2013/10/12 职场文书
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
大学生收银员求职信分享
2014/01/02 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
2015新学期开学寄语
2015/02/26 职场文书
校长师德表现自我评价
2015/03/05 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server
如何更改Win11声音输出设备?Win11声音输出设备四种更改方法
2022/04/08 数码科技
详解ZABBIX监控ESXI主机的问题
2022/06/21 Servers
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS