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操作xml代码
Jun 17 PHP
php中的注释、变量、数组、常量、函数应用介绍
Nov 16 PHP
php页面消耗内存过大的处理办法
Mar 18 PHP
8个必备的PHP功能实例代码
Oct 27 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
Jun 08 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
Jan 09 PHP
PHP微信开发之有道翻译
Jun 23 PHP
php自定义函数实现二维数组排序功能
Jul 20 PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
Oct 18 PHP
微信公众平台开发教程②微信端分享功能图文详解
Apr 10 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实现页面无刷新发表评论
2007/01/02 PHP
array_multisort实现PHP多维数组排序示例讲解
2011/01/04 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
浅谈php使用curl模拟多线程发送请求
2019/03/08 PHP
用PHP的反射实现委托模式的讲解
2019/03/22 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
2014/07/02 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
JavaScript操作 url 中 search 部分方法函数
2016/06/15 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
2016/12/12 Javascript
详解http访问解析流程原理
2017/10/18 Javascript
基于Node.js实现压缩和解压缩的方法
2018/02/13 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
windows实现npm和cnpm安装步骤
2019/10/24 Javascript
python 域名分析工具实现代码
2009/07/15 Python
Python遍历目录的4种方法实例介绍
2015/04/13 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
Python通过正则表达式选取callback的方法
2015/07/18 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
2016/12/14 Python
Python实现两个list对应元素相减操作示例
2017/06/09 Python
python3.6使用pickle序列化class的方法
2018/10/22 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
python 执行文件时额外参数获取的实例
2018/12/18 Python
dpn网络的pytorch实现方式
2020/01/14 Python
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
个人考核材料
2014/05/15 职场文书
教师暑期培训感言
2014/08/15 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
2016继续教育研修日志
2015/11/13 职场文书
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript