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 相关文章推荐
模拟xcopy的函数
Oct 09 PHP
ExtJS与PHP、MySQL实现存储的方法
Apr 02 PHP
Youku 视频绝对地址获取的方法详解
Jun 26 PHP
ThinkPHP3.1新特性之多层MVC的支持
Jun 19 PHP
php单例模式实现方法分析
Mar 14 PHP
smarty内部日期函数html_select_date()用法实例分析
Jul 08 PHP
php实现遍历多维数组的方法
Nov 25 PHP
php中strtotime函数性能分析
Nov 20 PHP
php实现的错误处理封装类实例
Jun 20 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
Aug 07 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
Jun 06 PHP
PHP保存Base64图片base64_decode的问题整理
Nov 04 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性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
jqgrid 简单学习笔记
2011/05/03 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
2015/06/19 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
2015/08/21 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
2017/06/13 jQuery
vue.js分页中单击页码更换页面内容的方法(配合spring springmvc)
2018/02/10 Javascript
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
vue-loader中引入模板预处理器的实现
2019/09/04 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
[48:12]Secret vs Optic Supermajor 胜者组 BO3 第三场 6.4
2018/06/05 DOTA
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
python中字典(Dictionary)用法实例详解
2015/05/30 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
在PYQT5中QscrollArea(滚动条)的使用方法
2019/06/14 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
OpenCV读取与写入图片的实现
2020/10/13 Python
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
岗位职责范本
2013/11/23 职场文书
医大实习自我鉴定
2013/12/07 职场文书
团委书记的竞聘演讲稿
2014/04/24 职场文书
创业培训计划书
2014/05/03 职场文书
职位说明书范文
2014/05/07 职场文书
大型演出策划方案
2014/05/28 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
读后感怎么写?书写读后感的基本技巧!
2019/12/10 职场文书
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
MySQL学习之基础操作总结
2022/03/19 MySQL