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 程式大小
Dec 06 PHP
php地址引用(php地址引用的效率问题)
Mar 23 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
Dec 25 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
Oct 20 PHP
Thinkphp中数据按分类嵌套循环实现方法
Oct 30 PHP
教你在PHPStorm中配置Xdebug
Jul 27 PHP
支付宝服务窗API接口开发php版本
Jul 20 PHP
php操纵mysqli数据库的实现方法
Sep 18 PHP
php json中文编码为null的解决办法
Dec 14 PHP
实例讲解PHP页面静态化
Feb 05 PHP
PHP getName()函数讲解
Feb 03 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 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检查是否是ajax请求的方法
2015/04/16 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
php经典趣味算法实例代码
2020/01/21 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
javascript面向对象之Javascript 继承
2010/05/04 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
node通过express搭建自己的服务器
2017/09/30 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
ES6的异步终极解决方案分享
2019/07/11 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
vue中实现弹出层动画效果的示例代码
2020/09/25 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
python安装以及IDE的配置教程
2015/04/29 Python
Python 中的with关键字使用详解
2016/09/11 Python
Python 中开发pattern的string模板(template) 实例详解
2017/04/01 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
办理暂住证介绍信
2014/01/11 职场文书
质量月活动总结
2014/08/26 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
《猴王出世》教学反思
2016/02/23 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书
什么是检讨书?检讨书的格式及范文
2019/11/05 职场文书