2011-12-23 1 views
2

Возможно ли, используя PHP, извлечь заголовки (h1, h2 и т. Д.) Со страницы с помощью PHP и перечислить их на одной странице в неупорядоченный список? Специальное решение для WordPress прекрасно, но также приветствуется общее PHP-решение.Как извлечь заголовки страницы с помощью PHP (в частности, WordPress)

EDIT: То, что я хочу что-то вида

h1 
    h2 
    h3 
    h3 
    h2 
    h3 
    h3 
+0

Я не всегда отправляю эту ссылку, но когда я это делаю, потому что я слишком ленив, чтобы найти более точная ошибка: [Лучшие методы анализа HTML в PHP] (http://stackoverflow.com/questions/3577641/how-to-parse-and-process-html-with-php) (не объясняет многое, хотя). Хотя WP вероятно и другие реализации часто используют более простой подход. – mario

ответ

3

В PHP, вы можете использовать манипуляции XML:

http://www.php.net/manual/en/domdocument.getelementsbytagname.php

еще не проверил, но что-то подобное для h1:

$dom = new DOMDocument(); 

@$dom->loadHTML(file_get_contents('htmlfile.htm')) 

$h1 = $dom->getElementsByTagName('h1'); 

foreach ($h1 as $val){ 
    echo $val->property->__toString(); 
} 

Я не совсем уверен в функциях, и я не собираюсь тестировать (пока, вероятно, завтра) ... У меня есть tostring от http://br.php.net/manual/en/class.domelement.php#98851

+0

Спасибо за ответ. Есть ли способ заказать все мои заголовки (чтобы я мог составить список, как показано в моем ответе)? – mc10

+0

@ mc10 Итак, у вас есть два варианта (но я не уверен в одном), вы можете использовать «*» (в функции getElementsByTagName), чтобы вытащить все теги и просто просеять те, которые вы хотите. Используйте '$ val- > tagName' в цикле foreach, чтобы проверить, какие теги вы ищете. – craniumonempty

+0

Какой еще вариант? – mc10