当前位置:首页 > PHP教程 > php高级应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-05 21:41:57 浏览: 评论:0 

这篇文章主要介绍了PHP中使用CURL获取页面title例子,本文使用正则实现获取页面title、页面编码、<head>标签中的内容,需要的朋友可以参考下

通过PHP获取页面title内容的实战演示:

范例代码:

  1. <?php   
  2. /*  
  3. 功能: 取得 URL 页面上的 <title> 内容   
  4.  
  5. 参数:$_POST['url']  
  6. */   
  7.    
  8. // 设置最长执行的秒数   
  9. ini_set ("expect.timeout", 30);   
  10. set_time_limit(30);   
  11.    
  12. // 检查 URL   
  13. if(!isset($_POST['url']) || $_POST['url'] == ''){    
  14.    echo "URL 错误";   
  15.    exit;   
  16. }   
  17.    
  18.    
  19. /* 取得 URL 页面数据 */   
  20. // 初始化 CURL   
  21. $ch = curl_init();   
  22.    
  23. // 设置 URL    
  24. curl_setopt($ch, CURLOPT_URL, $_POST['url']);    
  25. // 让 curl_exec() 获取的信息以数据流的形式返回,而不是直接输出。   
  26. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);   
  27. // 在发起连接前等待的时间,如果设置为0,则不等待   
  28. curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);   
  29. // 设置 CURL 最长执行的秒数   
  30. curl_setopt ($ch, CURLOPT_TIMEOUT, 30);   
  31.    
  32. // 尝试取得文件内容   
  33. $store = curl_exec ($ch);   
  34.    
  35.    
  36. // 检查文件是否正确取得   
  37. if (curl_errno($ch)){   
  38.    echo "无法取得 URL 数据";   
  39.    //echo curl_error($ch);/*显示错误信息*/   
  40.    exit;   
  41. }   
  42.    
  43. // 关闭 CURL   
  44. curl_close($ch);   
  45.    
  46.    
  47. // 解析 HTML 的 <head> 区段   
  48. preg_match("/<head.*>(.*)<\/head>/smUi",$store$htmlHeaders);   
  49. if(!count($htmlHeaders)){   
  50.    echo "无法解析数据中的 <head> 区段";   
  51.    exit;   
  52. }       
  53.       
  54. // 取得 <head> 中 meta 设置的编码格式   
  55. if(preg_match("/<meta[^>]*http-equiv[^>]*charset=(.*)(\"|')/Ui",$htmlHeaders[1], $results)){   
  56.    $charset =  $results[1];   
  57. }else{    
  58.    $charset = "None";   
  59. }   
  60.    
  61. // 取得 <title> 中的文字    
  62. if(preg_match("/<title>(.*)<\/title>/Ui",$htmlHeaders[1], $htmlTitles)){   
  63.    if(!count($htmlTitles)){   
  64.        echo "无法解析 <title> 的内容";   
  65.        exit;   
  66.    }   
  67.       
  68.    // 将  <title> 的文字编码格式转成 UTF-8   
  69.    if($charset == "None"){   
  70.        $title=$htmlTitles[1];   
  71.    }else{   
  72.        $title=iconv($charset"UTF-8"$htmlTitles[1]);   
  73.    }   
  74.    echo $title;   
  75. }

Tags: CURL PHP获取title

分享到: