如何高效获取整页标题
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;
?>
是否有使用 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;
?>