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 zlib扩展实现页面GZIP压缩输出
Jun 17 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
Nov 23 PHP
php中使用$_REQUEST需要注意的一个问题
May 02 PHP
php使用json_encode对变量json编码
Apr 07 PHP
PHP采集类Snoopy抓取图片实例
Jun 19 PHP
php使用for语句输出三角形的方法
Jun 09 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 PHP
PHP实现的登录页面信息提示功能示例
Jul 24 PHP
apache集成php7.3.5的详细步骤
Jun 20 PHP
Laravel使用Queue队列的技巧汇总
Sep 02 PHP
PHP通过文件保存和更新信息的方法分析
Sep 12 PHP
PHP实现创建以太坊钱包转账等功能
Apr 21 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 email邮箱正则
2008/10/08 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
jQuery拖拽 &amp; 弹出层 介绍与示例
2013/12/27 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
js获取下拉列表的值和元素个数示例
2014/05/07 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
JavaScript判断IE版本型号
2015/07/27 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
2016/07/11 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
详解微信小程序 wx.uploadFile 的编码坑
2017/01/23 Javascript
TypeScript入门-接口
2017/03/30 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
python中执行shell命令的几个方法小结
2014/09/18 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
详解Python with/as使用说明
2018/12/13 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
Python常用库大全及简要说明
2020/01/17 Python
Python DES加密实现原理及实例解析
2020/07/17 Python
python使用建议技巧分享(三)
2020/08/18 Python
python实现三种随机请求头方式
2021/01/05 Python
突袭HTML5之Javascript API扩展3—本地存储全新体验
2013/01/31 HTML / CSS
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
副科竞争上岗演讲稿
2014/05/12 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
毕业实习计划书
2015/01/16 职场文书
会计工作检讨书
2015/02/19 职场文书
Java 关于String字符串原理上的问题
2022/04/07 Java/Android
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python