PHP中使用CURL获取页面title例子


Posted in PHP onJanuary 07, 2015

通过PHP获取页面title内容的实战演示:

范例代码:

<?php   

/*  

功能: 取得 URL 页面上的 <title> 内容   

  

参数:$_POST['url']  

*/   

   

// 设置最长执行的秒数   

ini_set ("expect.timeout", 30);   

set_time_limit(30);   

   

// 检查 URL   

if(!isset($_POST['url']) || $_POST['url'] == ''){    

   echo "URL 错误";   

   exit;   

}   

   

   

/* 取得 URL 页面数据 */   

// 初始化 CURL   

$ch = curl_init();   

   

// 设置 URL    

curl_setopt($ch, CURLOPT_URL, $_POST['url']);    

// 让 curl_exec() 获取的信息以数据流的形式返回,而不是直接输出。   

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);   

// 在发起连接前等待的时间,如果设置为0,则不等待   

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);   

// 设置 CURL 最长执行的秒数   

curl_setopt ($ch, CURLOPT_TIMEOUT, 30);   

   

// 尝试取得文件内容   

$store = curl_exec ($ch);   

   

   

// 检查文件是否正确取得   

if (curl_errno($ch)){   

   echo "无法取得 URL 数据";   

   //echo curl_error($ch);/*显示错误信息*/   

   exit;   

}   

   

// 关闭 CURL   

curl_close($ch);   

   

   

// 解析 HTML 的 <head> 区段   

preg_match("/<head.*>(.*)<\/head>/smUi",$store, $htmlHeaders);   

if(!count($htmlHeaders)){   

   echo "无法解析数据中的 <head> 区段";   

   exit;   

}       

      

// 取得 <head> 中 meta 设置的编码格式   

if(preg_match("/<meta[^>]*http-equiv[^>]*charset=(.*)(\"|')/Ui",$htmlHeaders[1], $results)){   

   $charset =  $results[1];   

}else{    

   $charset = "None";   

}   

   

// 取得 <title> 中的文字    

if(preg_match("/<title>(.*)<\/title>/Ui",$htmlHeaders[1], $htmlTitles)){   

   if(!count($htmlTitles)){   

       echo "无法解析 <title> 的内容";   

       exit;   

   }   

      

   // 将  <title> 的文字编码格式转成 UTF-8   

   if($charset == "None"){   

       $title=$htmlTitles[1];   

   }else{   

       $title=iconv($charset, "UTF-8", $htmlTitles[1]);   

   }   

   echo $title;   

}  
PHP 相关文章推荐
用PHP生成静态HTML速度快类库
Mar 18 PHP
PHP安全技术之 实现php基本安全
Sep 04 PHP
php中inlcude()性能对比详解
Sep 16 PHP
php的ajax简单实例
Feb 27 PHP
使用PHP函数scandir排除特定目录
Jun 12 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
Jun 13 PHP
PHP获取二维数组中某一列的值集合
Dec 25 PHP
PHP模糊查询的实现方法(推荐)
Sep 06 PHP
thinkPHP简单实现多个子查询语句的方法
Dec 05 PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 PHP
PHP通过GD库实现验证码功能示例
Feb 23 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
Oct 11 PHP
PHP中调用SVN命令更新网站方法
Jan 07 #PHP
PHP PDO fetch 模式各种参数的输出结果一览
Jan 07 #PHP
PHP中使用php5-ffmpeg撷取视频图片实例
Jan 07 #PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
Jan 07 #PHP
PHP实现的简易版图片相似度比较
Jan 07 #PHP
PHP中使用SimpleXML检查XML文件结构实例
Jan 07 #PHP
php中$_POST与php://input的区别实例分析
Jan 07 #PHP
You might like
解析php中session的实现原理以及大网站应用应注意的问题
2013/06/17 PHP
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
php计算给定日期所在周的开始日期和结束日期示例
2017/02/06 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
thinkphp5框架扩展redis类方法示例
2019/05/06 PHP
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
2015/05/04 Javascript
js 连续赋值的简单实现
2016/06/13 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
jQuery实现火车票买票城市选择切换功能
2017/09/15 jQuery
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
JavaScript实现身份证验证代码实例
2019/08/26 Javascript
原生JS无缝滑动轮播图
2019/10/22 Javascript
ajax jquery实现页面某一个div的刷新效果
2021/03/04 jQuery
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
详谈python read readline readlines的区别
2017/09/22 Python
python邮件发送smtplib使用详解
2020/06/16 Python
使用python3实现操作串口详解
2019/01/01 Python
10行Python代码计算汽车数量的实现方法
2019/10/23 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
编辑找工作求职信分享
2014/01/03 职场文书
七年级数学教学反思
2014/01/22 职场文书
开学寄语大全
2014/04/08 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
社区工作者演讲稿
2014/05/23 职场文书
公司放假通知怎么写
2015/04/15 职场文书
国富论读书笔记
2015/06/26 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python