如何高效获取整页标题

How to get full page title efficiently

是否有使用 javascript 和 php 获取页面标题的万无一失+资源高效的方法。
到目前为止我已经尝试过:
1) 获取页面的全部代码,然后使用 explode()
将标题与页面分开 2) 使用 $_SERVER['SCRIPT_NAME']

所以,我只是想知道是否有更好的方法来做到这一点。

title 属性 of document object 是你所需要的。

var title = document.title;

如果您使用 jQuery 引入另一个页面,您可以这样做,$(data).find('title').text()

您可以使用 JavaScript 作为页面标题,就像 document.title 一样简单。

<script type="text/javascript">
    var title = document.title;
</script>

如果你想使用 jQuery 获取页面标题,你可以试试这个:

$(function(){
    var title = $('title').text();
})

更新

如果您是页面的"owner",则可以应用以上内容。如果你想获得一个页面的 title,因为它是 url,有一个有用的 link here,它解决了这个问题。

试试这个:

<script type="text/javascript">
 alert(document.title);
</script>

@Christos 提供了 helpful link 用于获取标题 using file_get_content() 和完整的 url 页面。

还有另一种方法,使用 PHP Output Buffering Control. In this approach you will start the PHP page with ob_start();然后有你的 HTML 代码,然后刷新输出。在这种情况下,您将在 PHP 缓冲区中拥有所有 HTML 代码,并且可以根据需要使用 file_get_content() 答案中建议的相同正则表达式对其进行处理。

<?php
    $title = NULL; // will hold the page title

    ob_start(); // start output control    
?>
<!-- HTML PAGE CODE HERE -->
<html>
<head>
<title>Page title from tag</title>
</head>
<body>

<p>Lorem ipsum dolor sit amet, consectetuer adipiscing 
elit. Aenean commodo ligula eget dolor. Aenean massa . </p>    

</body>
</html>

<?php

    // find the title in the buffer using ob_get_contents
    if (preg_match('{<title[^>]*>(.*?)<\/title[ ]*>}i', ob_get_contents(), $matches)) {
        $title = $matches[1];
    }

    // flush the buffer to screen
    ob_end_flush();

    // work with the title variable - check first if null
    echo '<hr/>'.$title;
?>