Выделить теги html в PHP
Пробовал так
Код:
eregi("<(.+)>", $html_code, $tags);
Но на выход получал то же самое, что на вход, потому что он находит ВСЕ между первым < и последним > включая сами <>. Помогите плиз решить проблему.
Цитата:
preg_match(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to ereg().
Во-вторых, являение, которое вы описали называется "жадностью" (Greedy) регулярных выражений. Чтобы ее ограничить, нужно указать модификатор U (в Perl-compatible регэкспах).
Итого, попробуй так:
Код:
preg_match('#<(.+)>#sU', $html_code, $tags);
print_r($matches);
print_r($matches);
Модификтор 's' указывает на то, что точка будет соответствовать любому символу, включая перевод строки (это на случай если таг разорван на несколько строк).
В вашем случае print_r($tags).
Если мне не изменяет склероз, то preg_match после нахождения первого вхождения подстроки прекратит свою работу. Т.е. будет выделено содержание первого найденого тега, но ни как не всех.
Код:
preg_match_all ('#<(.+)>#sU', $html_code, $tags1);