Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Извлечение всех <h2> из страницы
Форумы портала PHP.SU » PHP » Регулярные выражения » Извлечение всех <h2> из страницы

Страниц (1): [1]
 

1. dohowucil - 23 Июля, 2016 - 21:57:32 - перейти к сообщению
Здравствуйте.

Помогите извлечь содержимое всех h2 и записать их в строку.

Только разбираюсь с регулярками и застряг на этом.
Часа 2 потратил, но так и не понял как сделать.

Есть следующий html:
CODE (htm):
скопировать код в буфер обмена
  1.  
  2. ...some code...
  3. <h1>header 1</h1>
  4. <h2 class='someclass'>header 2</h2 >
  5. <p> some text</p>
  6. <h3>header 3</h3>
  7. <p> some text</p>
  8. <h2 class='someclass' id='someId'>header 4</h2>
  9. <p> some text</p>
  10. <h2 id="someId">header 5< /h2>
  11. <p> some text</p>
  12.  


Нужно получить одну строку, которая содержит:
header 2. header 4. header 5.


Понимаю что отталкиваться нужно от > і <, но как сделать чтобы получить только содержимое заголовка и исключить всевозможные id’ы, class’ы и пробелы.
2. Строитель - 23 Июля, 2016 - 23:38:39 - перейти к сообщению
dohowucil пишет:
Нужно получить одну строку, которая содержит:
header 2. header 4. header 5.
PHP:
скопировать код в буфер обмена
  1. $search = '
  2.    <h2 class="someclass">header 2</h2>
  3.    <h2 class="someclass" id="someId">header 4</h2>
  4.    <h2 id="someId">header 5</h2>
  5. ';
  6. preg_match_all('~<h2[^>]*>(.*)</h2>~i', $search, $arr);
  7. echo join('.', $arr[1]); // header 2.header 4.header 5
  8.  
3. dohowucil - 24 Июля, 2016 - 23:26:27 - перейти к сообщению
Строитель пишет:
dohowucil пишет:
Нужно получить одну строку, которая содержит:
header 2. header 4. header 5.
PHP:
скопировать код в буфер обмена
  1. $search = '
  2.    <h2 class="someclass">header 2</h2>
  3.    <h2 class="someclass" id="someId">header 4</h2>
  4.    <h2 id="someId">header 5</h2>
  5. ';
  6. preg_match_all('~<h2[^>]*>(.*)</h2>~i', $search, $arr);
  7. echo join('.', $arr[1]); // header 2.header 4.header 5
  8.  


Работает. Закатив глазки

Спасибо.

 

Powered by ExBB FM 1.0 RC1