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 相关文章推荐
Ajax+PHP 边学边练之四 表单
Nov 27 PHP
php模拟post行为代码总结(POST方式不是绝对安全)
Feb 22 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
Mar 06 PHP
php获取新浪微博数据API实例
Nov 12 PHP
php按百分比生成缩略图的代码分享
May 10 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
Nov 22 PHP
php文件缓存类用法实例分析
Apr 22 PHP
使用Yii2实现主从数据库设置
Nov 20 PHP
Thinkphp框架中D方法与M方法的区别
Dec 23 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
PHP面向对象类型约束用法分析
Jun 12 PHP
解决laravel资源加载路径设置的问题
Oct 14 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编程最快明白》第三讲:php数组
2010/11/01 PHP
php下安装配置fckeditor编辑器的方法
2011/03/02 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
学习ExtJS 访问容器对象
2009/10/07 Javascript
javascript css styleFloat和cssFloat
2010/03/15 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
详解使用vuex进行菜单管理
2017/12/21 Javascript
Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
2018/01/26 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
vue源码解析之事件机制原理
2018/04/21 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
jquery实现吸顶导航效果
2020/01/08 jQuery
[07:49]2014DOTA2国际邀请赛 Newbee夺冠后采访xiao8坦言奖金会上交
2014/07/23 DOTA
python求解水仙花数的方法
2015/05/11 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
Python计算不规则图形面积算法实现解析
2019/11/22 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
python中with用法讲解
2020/02/07 Python
基于canvas的骨骼动画的示例代码
2018/06/12 HTML / CSS
师范生实习的个人自我鉴定
2013/10/20 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
爱与责任师德演讲稿
2014/08/26 职场文书
水电施工员岗位职责
2015/04/11 职场文书
大学感恩节活动总结
2015/05/05 职场文书
郭明义观后感
2015/06/08 职场文书
开业典礼致辞
2015/07/29 职场文书
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS