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发电子邮件
Oct 09 PHP
PHP 函数语法介绍一
Jun 14 PHP
PHP验证码类代码( 最新修改,完全定制化! )
Dec 02 PHP
php模拟js函数unescape的函数代码
Oct 20 PHP
php随机抽奖实例分析
Mar 04 PHP
WordPress开发中的get_post_custom()函数使用解析
Jan 04 PHP
php实现无限级分类查询(递归、非递归)
Mar 10 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
Aug 19 PHP
stripos函数知识点实例分享
Feb 11 PHP
YII框架行为behaviors用法示例
Apr 26 PHP
PHP Redis扩展无法加载的问题解决方法
Aug 22 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 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 cron中的批处理
2008/09/16 PHP
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
2016/07/09 PHP
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
面向对象的javascript(笔记)
2009/10/06 Javascript
jquery怎样实现ajax联动框(二)
2013/03/08 Javascript
jquery图片放大功能简单实现
2013/08/01 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
JS逻辑运算符短路操作实例分析
2018/07/09 Javascript
elementUI 设置input的只读或禁用的方法
2018/10/30 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
python将图片文件转换成base64编码的方法
2015/03/14 Python
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
Python有序查找算法之二分法实例分析
2017/12/11 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
函授教育个人学习的自我评价
2013/12/31 职场文书
致铅球运动员广播稿精选
2014/01/12 职场文书
促销活动总结报告
2014/04/26 职场文书
移交协议书
2014/08/19 职场文书
挂靠协议书
2015/01/27 职场文书
民主评议党员个人总结
2015/02/13 职场文书
大学生个人简历自我评价
2015/03/11 职场文书
2015年圣诞节寄语
2015/08/17 职场文书