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 文件上传进度条的两种实现方法的代码
Nov 25 PHP
五个PHP程序员工具
May 26 PHP
PHP 基本语法格式
Dec 15 PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
Mar 12 PHP
Laravel 5框架学习之用户认证
Apr 09 PHP
PHP微信开发之二维码生成类
Jun 26 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
redis查看连接数及php模拟并发创建redis连接的方法
Dec 15 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
Jul 03 PHP
对php 判断http还是https,以及获得当前url的方法详解
Jan 15 PHP
laravel 修改记住我功能的cookie保存时间的方法
Oct 14 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与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
2017/08/14 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
JS中style属性
2006/10/11 Javascript
JavaScript 弹出窗体点击按钮返回选择数据的实现
2010/04/01 Javascript
简单的代码实现jquery定时器
2013/11/17 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
浅谈$_FILES数组为空的原因
2017/02/16 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
python time模块用法实例详解
2014/09/11 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
2019/02/21 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
Python logging模块进行封装实现原理解析
2020/08/07 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
CSS3制作彩色进度条样式的代码示例分享
2016/06/23 HTML / CSS
深入研究HTML5实现图片压缩上传功能
2016/03/25 HTML / CSS
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
英国Flybe航空官网:欧洲最大的独立支线廉价航空公司
2019/07/15 全球购物
企业年检委托书范本
2014/10/14 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
2016年小学生新年寄语
2015/08/18 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python