Я знаю, что это очень старая запись, однако я хотел бы упомянуть лучший способ, которым я смог коллективно получить заголовки тегов.
<h1>title</h1> and <h2>title 2</h2>
Этот метод (работает как регулярное выражение, однако PHP действует немного по-другому.)
/<\s*h[1-2](?:.*)>(.*)</\s*h/i
используйте это в вашем preg_match
|<\s*h[1-2](?:.*)>(.*)</\s*h|Ui
$group[1]
будет включать в себя то, что находится между тегом заголовка.
$group[0]
это все <h1>test</h
Это будет учитывать пробелы, и если кто-то добавит "class / id"
<h1 class="classname">test</h1>
класс / id (группа) игнорируется.
ПРИМЕЧАНИЕ : Когда я анализирую теги HTML, я всегда удаляю и заменяю все пробелы, разрывы строк, табуляции и т. Д. На 1 пробел. Это минимизирует многострочные, точечные и очень большие пробелы, которые в некоторых случаях могут испортить форматирование регулярных выражений.
- конечно, я только беру 1-2 тега заголовка, измените это на 0-9, чтобы захватить все.
- Если у кого-то есть мод для добавления или исправления к моему коду, пожалуйста, ответьте, я бы очень хотел знать.
- Напротив, Regex плохо работает с HTML, это очень открытый аргумент. Потому что если вы спроектируете свои php-функции и выражения регулярных выражений, чтобы полностью убрать мусор и подготовить HTML-код для определенных выражений регулярных выражений, вы сможете прекрасно получить то, что ищете. Вы можете сделать достаточное количество регулярных выражений, чтобы заменить любительскую работу с HTML.
Вот ссылка на тестовую страницу regex test