Разбор HTML-тегов с помощью Smarty - PullRequest
1 голос
/ 25 февраля 2011

Есть ли у меня простой способ получить содержимое тега <h1> из html-файла, используя PHP (или Smarty), на стороне сервера?

Справочная информация заключается в том, что мне нужно сделать некоторые SEO наустаревший PHP-сайт на базе Smarty, с кучей страниц контента с заголовком не определено .

Т.е. главная страница index.php загружает общий шаблон index.tpl, который содержит <head> section вместе с <title> и мета-тегами описания для всех страниц , а затем просто извлекает содержимое из отдельного pXXX.html, основываясь на параметре id в URL.Каждая «контентная» страница имеет тег <h1>, в котором хранится соответствующий заголовок, но заголовок страницы остается постоянным.

Поскольку их слишком много, чтобы редактировать каждый из них по отдельности, я хотелчтобы узнать, смогу ли я получить их каждый, проанализировав страницу по запросу.Я думаю, я мог бы создать сценарий, который бы выполнял некоторую пакетную обработку, но я ищу быстрое решение, которое не изменило бы эти страницы контента.

Я также открыт для других предложений.Честно говоря, я никогда раньше не использовал Smarty, поэтому я мог бы что-то здесь упустить.

Ответы [ 2 ]

1 голос
/ 25 февраля 2011
preg_match('~<h1>(.+)</h1>~', file_get_contents('original_file.html'), $result);
var_dump($result[1]);
1 голос
/ 25 февраля 2011

Ну, в index.php вы могли бы:

  • получить содержимое файла pXXX.html в var (перед загрузкой index.tpl)
  • создайте smarty var, например $ content
  • анализировать содержимое, чтобы получить заголовок h1
  • создайте smarty var, например, $ title
  • изменить index.tpl для отображения $ title и $ content
...