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获取表单textarea数据中的换行问题
Sep 10 PHP
smarty模板嵌套之include与fetch性能测试
Dec 05 PHP
PHP中几个常用的魔术常量
Feb 23 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
Jul 01 PHP
基于initPHP的框架介绍
Apr 18 PHP
php自动识别文件编码并转换为UTF-8的方法
Jun 12 PHP
php自定义函数实现二维数组排序功能
Jul 20 PHP
ecshop适应在PHP7的修改方法解决报错的实现
Nov 01 PHP
THINKPHP截取中文字符串函数实例代码
Mar 20 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
php数值计算num类简单操作示例
May 15 PHP
PHP大文件分割分片上传实现代码
Dec 09 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
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
js 实现无缝滚动 兼容IE和FF
2009/07/15 Javascript
jquery iframe操作详细解析
2013/11/20 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
详解JavaScript UTC时间转换方法
2016/01/07 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
学习Vue组件实例
2018/04/28 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
vue项目实现图片上传功能
2019/12/23 Javascript
TypeScript之调用栈的实现
2019/12/31 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
python中字典dict常用操作方法实例总结
2015/04/04 Python
Python2实现的LED大数字显示效果示例
2017/09/04 Python
python主线程捕获子线程的方法
2018/06/17 Python
Python常用的json标准库
2019/02/19 Python
Django框架验证码用法实例分析
2019/05/10 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
世界经理人咨询有限公司面试
2014/09/23 面试题
初中生学习的自我评价
2013/11/14 职场文书
党员政治学习材料
2014/05/14 职场文书
学校清明节活动总结
2014/07/04 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
武当山导游词
2015/02/03 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
公司聚餐通知
2015/04/22 职场文书
小孩不笨观后感
2015/06/03 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
Python机器学习之底层实现KNN
2021/06/20 Python