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边学边教》(01.开篇――准备工作)
Dec 13 PHP
php 数组的指针操作实现代码
Feb 08 PHP
phpmail类发送邮件函数代码
Feb 20 PHP
PHP JS Ip地址及域名格式检测代码
Sep 27 PHP
php 生成短网址原理及代码
Jan 23 PHP
php使用百度翻译api示例分享
Jan 31 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
Aug 20 PHP
FastCGI 进程意外退出造成500错误
Jul 26 PHP
Yii+upload实现AJAX上传图片的方法
Jul 13 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 PHP
laravel框架实现后台登录、退出功能示例
Oct 31 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
Dec 16 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
MYSQL环境变量设置方法
2007/01/15 PHP
功能齐全的PHP发送邮件类代码附详细说明
2008/07/10 PHP
php array_unique之后json_encode需要注意
2011/01/02 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
2019/03/18 PHP
javascript 动态添加表格行
2006/06/22 Javascript
JavaScript Archive Network 集合
2007/05/12 Javascript
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
javascript 中that的含义示例介绍
2014/05/14 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
详解webpack进阶之loader篇
2017/08/23 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
JS实现瀑布流布局
2017/10/21 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
详解组件库的webpack构建速度优化
2018/06/18 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
在Python中使用itertools模块中的组合函数的教程
2015/04/13 Python
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
Python多线程thread及模块使用实例
2020/04/28 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
python定时截屏实现
2020/11/02 Python
HTML5拖拽的简单实例
2016/05/30 HTML / CSS
英国在线玫瑰专家:InterRose
2019/12/01 全球购物
大学运动会通讯稿
2014/01/28 职场文书
2015年志愿者服务工作总结
2015/04/20 职场文书
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android