PHP中使用CURL获取页面title例子

通过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;  
}

(0)

相关推荐

  • php中的curl_multi系列函数使用例子

    相信许多人对php手册中语焉不详的curl_multi一族的函数头疼不已,它们文档少,给的例子 更是简单的让你无从借鉴,我也曾经找了许多网页,都没见一个完整的应用例子. curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select 一般来说,想到要

  • php使用curl模拟登录后采集页面的例子

    今天接到的功课是从一个网站获取商品库存,但是这个网站需要登录,我用fsockopen传递了整个header头都没用,只能求助于curl了.附带说一下curl模块的开启办法:(1)从php目录下拷贝:libeay32.dll,ssleay32.dll 到windows目录下.(2)打开php.ini,查找"extension_dir = xxxxx",确认后面的文件目录内有php_curl.dll文件.(3)同样是php.ini,查找"extension=php_curl.dl

  • PHP使用CURL_MULTI实现多线程采集的例子

    这两天有一客户定制了一个免登录发布模块,因为在模块中需要涉及到很多图片下载的问题,考虑到性能问题,所以特别写了一个CURL_MULTI远程采集网页的函数,以方便以后使用,估计以后都不会使用原来的单线程curl函数去foreach了,其性能对比很明显的.同样获取我的博客的十个不同网页,curl_multi:4.5246081352234,file_get_contents:33.001797914505,将近8倍的效率,可想而知,如果在附件更多的情况下,性能差异就越明显了,希望对您有所帮助! 复制

  • php curl常用的5个经典例子

    我用php ,curl主要是抓取数据,当然我们可以用其他的方法来抓取,比如fsockopen,file_get_contents等.但是只能抓那些能直接访问的页面,如果要抓取有页面访问控制的页面,或者是登录以后的页面就比较困难了. 1,抓取无访问控制文件 <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://localhost/mytest/phpinfo.php"); curl_setopt($ch, CU

  • PHP中使用CURL获取页面title例子

    通过PHP获取页面title内容的实战演示: 范例代码: 复制代码 代码如下: <?php   /*  功能: 取得 URL 页面上的 <title> 内容     参数:$_POST['url']  */      // 设置最长执行的秒数   ini_set ("expect.timeout", 30);   set_time_limit(30);      // 检查 URL   if(!isset($_POST['url']) || $_POST['url']

  • ios设备中angularjs无法改变页面title的解决方法

    如下所示: $rootScope.$watch('title',function(title){ var body = document.getElementsByTagName('body')[0]; document.title = title; var iframe = document.createElement("iframe"); iframe.title = ''; iframe.width = 0; iframe.height = 0; iframe.setAttrib

  • php中通过curl检测页面是否被百度收录

    最近要对网站做个整理,需要检测网站内哪些页面没有被百度搜索引擎收录从而进行相关的调整.由于使用site命令一条条的去看实在是看不过来,就想到了使用php程序来批量处理一下,研究了一下,发现其实很简单,下面就将作者使用php实现的检测页面是否被百度收录的功能分享一下. 下面是具体代码: 复制代码 代码如下: <?php/** 检测网页是否被百度收录,返回1则表示收录 返回0表示没有收录* @ param string $url 待检测的网址*/function checkBaiduInclude(

  • php curl获取https页面内容,不直接输出返回结果的设置方法

    使用php curl获取页面内容或提交数据, 有时候希望返回的内容作为变量储存, 而不是直接输出. 方法:设置curl的CURLOPT_RETURNTRANSFER选项为1或true. eg: $url = 'http://www.baidu.com'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); // 不要http header 加快效率 curl_setopt($curl, CURLOPT_HEADER, 0); // htt

  • Python Selenium自动化获取页面信息的方法

    1.获取页面title title:获取当前页面的标题显示的字段 from selenium import webdriver import time browser = webdriver.Chrome() browser.get('https://www.baidu.com') #打印网页标题 print(browser.title) #输出内容:百度一下,你就知道 2.获取页面URL current_url:获取当前页面的URL from selenium import webdriver

  • WordPress中获取页面链接和标题的相关PHP函数用法解析

    get_permalink()(获取文章或页面链接) get_permalink() 用来根据固定连接返回文章或者页面的链接.在获取链接时 get_permalink() 函数需要知道要获取的文章的 ID,如果在循环中则自动默认使用当前文章. 用法 get_permalink( $id, $leavename ); 参数 $id (混合)(可选)文章或者页面的 ID(整数):还可以是文章对象. 默认值:在循环中自动调用当前的文章 $leavename (布尔)(可选)转化成链接是是否忽略文章别名

  • 原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法

    用原生js在父页面获取iframe子页面的元素,以及在子页面获取父页面元素,这是平时经常会用到的方法,这里写一个例子来总结下: 1.父页面(demo.html),在父页面修改子页面div的背景色为灰色,原来为红色: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  • PHP中使用CURL模拟登录并获取数据实例

    cURL 是一个功能强大的PHP库,使用PHP的cURL库可以简单和有效地抓取网页并采集内容,设置cookie完成模拟登录网页,curl提供了丰富的函数,开发者可以从PHP手册中获取更多关于cURL信息.本文以模拟登录开源中国(oschina)为例,和大家分享cURL的使用. PHP的curl()在抓取网页的效率方面是比较高的,而且支持多线程,而file_get_contents()效率就要稍低些,当然,使用curl时需要开启下curl扩展. 代码实战 先来看登录部分的代码: 复制代码 代码如下

  • JavaScript获取页面中超链接数量的方法

    本文实例讲述了JavaScript获取页面中超链接数量的方法.分享给大家供大家参考,具体如下: 这里演示JavaScript取得页面的超链接数,感兴趣的朋友可以学习借鉴一下. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-total-link-num-codes/ 具体代码如下: <html> <head> <title>JavaScript取得页面的超链接数</title> <script l

随机推荐