Есть ли надежный + эффективный способ получить заголовок страницы, используя javascript и php.
Пока что я пробовал:
1) Получить весь код страницы и затем отделить от нее заголовок, используя explode()
2) Использование $_SERVER['SCRIPT_NAME']
Итак, я просто хотел узнать, есть ли лучший способ сделать это.
Вы могли бы заголовок страницы, используя JavaScript
так просто как document.title
,
<script type="text/javascript">
var title = document.title;
</script>
Если вы хотите получить заголовок страницы, используя jQuery
Вы можете попробовать это:
$(function(){
var title = $('title').text();
})
Обновить
Выше может быть применено, если вы являетесь «владельцем» страницы. Если вы хотите получить title
страницы, учитывая, что это url
есть полезная ссылка Вот, которая решает эту проблему.
Просто попробуйте это:
<script type="text/javascript">
alert(document.title);
</script>
@Christos предоставил полезная ссылка для получения титула using file_get_content()
и полный URL страницы.
Есть другой подход к этому, используя PHP Управление буфером вывода. При таком подходе вы начнете страницу PHP с ob_start (); затем получите свой HTML-код и затем очистите вывод. в этом сценарии у вас будет весь HTML-код в буфере PHP, и вы сможете работать с ним так, как вам нравится, используя то же регулярное выражение, которое предлагается в 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;
?>
title
собственностью document
Объект — это то, что вам нужно.
var title = document.title;
Если вы используете jQuery для перехода на другую страницу, вы можете сделать на ней, $(data).find('title').text()