Как автоматом заполнить <title> текстом из <h1>?

12
crk
На сайте с 23.05.2007
Offline
58
crk
1420

Вообщем вот и весь вопрос.

Желательно с помощью PHP.

Shtogrin
На сайте с 02.11.2006
Offline
95
#1

как-то так

preg_match("|<h1>(.*)</h1>|imsU", $content, $title)

www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
crk
На сайте с 23.05.2007
Offline
58
crk
#2
Shtogrin:
как-то так
preg_match("|<h1>(.*)</h1>|imsU", $content, $title)

я не особо разбираюсь в PHP.

Поясните, пожалуйста, куда конкретно вставить код.

Вот как сделал я:

<title>
<?php
preg_match("|<h1>(.*)</h1>|imsU", $content, $title)
?>
</title>

Но не работает.

Shtogrin
На сайте с 02.11.2006
Offline
95
#3
crk:
Желательно с помощью PHP.
crk:
я не особо разбираюсь в PHP.

тогда все значительно сложнее.

Чтобы вырезать что-то, надо знать где оно лежит (в примере предполагалось что переменная $content содержит html код в котором есть h1). Что у вас за движок?

crk
На сайте с 23.05.2007
Offline
58
crk
#4

Движка нет.

Код страницы примерно такой с вашим кодом:

<html>

<head>

<title>
<?php
preg_match("|<h1>(.*)</h1>|imsU", $content, $title)
?>
</title>
</head>


<body>
<h1>Текст нужный в тайтле.</h1>
<p>Какой-то, неважный нам, текст.</p>
</body>

</html>

Поясните, пожалуйста, какие еще дополнения нужны.

S
На сайте с 13.07.2007
Offline
56
#5

$str ='<html>

<head>

<title></title>

</head>

<body>

<h1>Текст нужный в тайтле.</h1>

<p>Какой-то, неважный нам, текст.</p>

</body>

</html>';

preg_match("|<h1>(.*)</h1>|imsU", $str, $title);

$str = str_replace('<title></title>', '<title>' . $title[0] . '</title>', $str);

Shtogrin
На сайте с 02.11.2006
Offline
95
#6
crk:
Поясните, пожалуйста, какие еще дополнения нужны.

Как минимум нужен движок. Т.е. нужен скрипт, на который перенаправлялись бы все запросы html (например, через mod_rewrite), иначе вам придется вставлять код в каждый файл и тогда проще просто вставить нужный title.

crk
На сайте с 23.05.2007
Offline
58
crk
#7

У меня все страницы сайта на сервере выглядят так:

<? include("http://www.site.ru/head.php"); ?>

<h1>Текст нужный в тайтл</h1>
<p>Какой-то текст</p>

<? include("http://www.site.ru/footer.php"); ?>

гда все, кроме основного содержания страницы, в инклюдах.

S
На сайте с 13.07.2007
Offline
56
#8

Ну точнее можно. Если хорошо подумать :)

Но лучше изначально все нормально переписать ;)

crk
На сайте с 23.05.2007
Offline
58
crk
#9
solnikolay:
$str ='<html>

<head>

<title></title>
</head>


<body>
<h1>Текст нужный в тайтле.</h1>
<p>Какой-то, неважный нам, текст.</p>
</body>

</html>';

preg_match("|<h1>(.*)</h1>|imsU", $str, $title);
$str = str_replace('<title></title>', '<title>' . $title[0] . '</title>', $str);

Этот код в таком виде тоже не работает.

S
На сайте с 13.07.2007
Offline
56
#10

crk, он работает. Просто кто-то не захотел туда вывод добавить: print $str;

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий