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伪静态写法附代码
Jun 20 PHP
PHP用GD库生成高质量的缩略图片
Mar 09 PHP
php引用计数器进行垃圾收集机制介绍
Sep 19 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
Jul 04 PHP
Symfony2实现在doctrine中内置数据的方法
Feb 05 PHP
PHP读取mssql json数据中文乱码的解决办法
Apr 11 PHP
ThinkPHP中limit()使用方法详解
Apr 19 PHP
PHP手机号中间四位用星号*代替显示的实例
Jun 02 PHP
php实现的错误处理封装类实例
Jun 20 PHP
php实现的rc4加密解密类定义与用法示例
Aug 16 PHP
YII框架实现自定义第三方扩展操作示例
Apr 26 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
Sep 29 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 全局变量范围分析
2009/08/07 PHP
linux命令之调试工具strace的深入分析
2013/06/03 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
详解php中的implements 使用
2017/06/13 PHP
js实现iframe动态调整高度的代码
2008/01/06 Javascript
Javascript 代码也可以变得优美的实现方法
2009/06/22 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
javascript中callee与caller的区别分析
2015/04/20 Javascript
Jquery使用val方法读写value值
2015/05/18 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
vue.js实现条件渲染的实例代码
2017/06/22 Javascript
JS实现加载时锁定HTML页面元素的方法
2017/06/24 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
javascript面向对象三大特征之多态实例详解
2019/07/24 Javascript
js实现简单抽奖功能
2020/11/24 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python引用模块和查找模块路径
2016/03/17 Python
python爬取w3shcool的JQuery课程并且保存到本地
2017/04/06 Python
TensorFlow实现随机训练和批量训练的方法
2018/04/28 Python
Python使用random.shuffle()打乱列表顺序的方法
2018/11/08 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
2019/08/27 Python
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
Canvas 文本填充线性渐变的使用详解
2020/06/22 HTML / CSS
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
体育专业个人的求职信范文
2013/09/21 职场文书
主持人演讲稿范文
2013/12/28 职场文书
安全标准化实施方案
2014/02/20 职场文书
经典英文广告词
2014/03/18 职场文书
会计学专业求职信
2014/07/17 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书