如何在PHP中获取页面标题?

时间:2012-12-25 05:09:31

标签: php

我有这个功能来获取网站的标题:

function getTitle($Url){
$str = file_get_contents($Url);
if(strlen($str)>0){
    preg_match("/\<title\>(.*)\<\/title\>/",$str,$title);
    return $title[1];
}
}

然而,这个功能使我的页面花了太多时间来回应。有人告诉我只通过网站的请求标题获取标题,这不会读取整个文件,但我不知道如何。任何人都可以告诉我应该使用哪些代码和功能来执行此操作?非常感谢你。

3 个答案:

答案 0 :(得分:3)

使用正则表达式不是HTML的好主意,而是使用DOM Parser

$html = new simple_html_dom();
$html->load_file('****'); //put url or filename  
$title = $html->find('title');
echo $title->plaintext;

// Create DOM from URL or file
$html = file_get_html('*****');

// Find all images 
foreach($html->find('title') as $element) 
       echo $element->src . '<br>';

好读

  1. RegEx match open tags except XHTML self-contained tags

答案 1 :(得分:0)

使用jQuery代替获取页面标题

$(document).ready(function() {
    alert($("title").text());
});​

演示:http://jsfiddle.net/WQNT8/1/

答案 2 :(得分:0)

尝试这肯定会有效

include_once 'simple_html_dom.php';

$oHtml = str_get_html($url);
$Title = array_shift($oHtml->find('title'))->innertext;
$Description = array_shift($oHtml->find("meta[name='description']"))->content;
$keywords = array_shift($oHtml->find("meta[name='keywords']"))->content;
echo $title;
echo $Description;
echo $keywords;