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 相关文章推荐
discuz Passport 通行证 整合笔记
Jun 30 PHP
一步一步学习PHP(3) php 函数
Feb 15 PHP
php smarty函数扩展
Mar 15 PHP
php和js如何通过json互相传递数据相关问题探讨
Feb 26 PHP
php中session使用示例
Mar 29 PHP
PHP中防止SQL注入方法详解
Dec 25 PHP
php在apache环境下实现gzip配置方法
Apr 02 PHP
yii实现model添加默认值的方法(2种方法)
Jan 06 PHP
Symfony2框架学习笔记之表单用法详解
Mar 18 PHP
php使用Jpgraph创建折线图效果示例
Feb 15 PHP
微信公众号实现会员卡领取功能
Jun 08 PHP
浅谈关于PHP解决图片无损压缩的问题
Sep 01 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变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
php+croppic.js实现剪切上传图片功能
2018/08/14 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
Javascript中克隆一个数组的实现代码
2013/12/06 Javascript
Javascript的闭包详解
2014/12/26 Javascript
jquery带下拉菜单和焦点图代码分享
2015/08/24 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
小程序实现五星点评效果
2018/11/03 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
[01:00:14]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第二场 2月28日
2021/03/11 DOTA
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
详解python字节码
2018/02/07 Python
Python实现计算圆周率π的值到任意位的方法示例
2018/05/08 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
Python实现Word表格转成Excel表格的示例代码
2020/04/16 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
Html5插件教程之添加浏览器放大镜效果的商品橱窗
2016/01/07 HTML / CSS
天猫精选:上天猫,就够了
2016/09/21 全球购物
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
英国探险旅游专家:Explore
2018/12/20 全球购物
大学生职业生涯规划书范文
2014/01/14 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
thinkphp 获取控制器及控制器方法
2021/04/16 PHP
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers