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 相关文章推荐
风格模板初级不完全修改教程
Oct 09 PHP
理解PHP5中static和const关键字的区别
Mar 19 PHP
用PHP ob_start()控制浏览器cache、生成html实现代码
Feb 16 PHP
PHP IN_ARRAY 函数使用注意事项
Jul 24 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
Jun 20 PHP
解析link_mysql的php版
Jun 30 PHP
php实现遍历目录并删除指定文件中指定内容
Jan 21 PHP
浅谈PHP链表数据结构(单链表)
Jun 08 PHP
Laravel 5.3 学习笔记之 错误&amp;日志
Aug 28 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 PHP
php排序算法实例分析
Oct 17 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 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 printf输出格式使用说明
2010/12/05 PHP
Drupal简体中文语言包安装教程
2014/09/27 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
javascript的几种写法总结
2016/09/30 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
vue better scroll 无法滚动的解决方法
2018/06/07 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
Vue 使用beforeEach实现登录状态检查功能
2019/10/31 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
[01:13:18]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
Python简单生成随机数的方法示例
2018/03/31 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
2018/04/28 Python
numpy返回array中元素的index方法
2018/06/27 Python
Python 中的lambda函数介绍
2018/10/10 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
详解python--模拟轮盘抽奖游戏
2019/04/12 Python
python 字典操作提取key,value的方法
2019/06/26 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
2019/08/09 Python
python实现KNN分类算法
2019/10/16 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
经理秘书求职自荐信范文
2014/03/23 职场文书
马智宇结婚主持词
2014/04/01 职场文书
《水乡歌》教学反思
2014/04/24 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
六一儿童节标语
2014/10/08 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
2015大学生自我评价范文
2015/03/03 职场文书
商业计划书格式、范文
2019/03/21 职场文书
创业计划书之青年旅馆
2019/09/23 职场文书