在 PHP 中检索<标题>的最快方法

2022-08-30 14:23:49

我正在做一个书签系统,并寻找使用PHP检索页面标题的最快(最简单)方法。

有这样的东西会很好$title = page_title($url)


答案 1
<?php
    function page_title($url) {
        $fp = file_get_contents($url);
        if (!$fp) 
            return null;

        $res = preg_match("/<title>(.*)<\/title>/siU", $fp, $title_matches);
        if (!$res) 
            return null; 

        // Clean up title: remove EOL's and excessive whitespace.
        $title = preg_replace('/\s+/', ' ', $title_matches[1]);
        $title = trim($title);
        return $title;
    }
?>

在以下输入上给'er一个旋风:

print page_title("http://www.google.com/");

输出:谷歌

希望足够通用,适合您的使用。如果你需要更强大的东西,投入一点时间来研究HTML解析器可能不会有什么坏处。

编辑:添加了一些错误检查。有点匆匆忙忙地把第一个版本拿出来了,抱歉。


答案 2

您可以在没有reg表达式的情况下获取它:

$title = '';
$dom = new DOMDocument();

if($dom->loadHTMLFile($urlpage)) {
    $list = $dom->getElementsByTagName("title");
    if ($list->length > 0) {
        $title = $list->item(0)->textContent;
    }
}

推荐