PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
dohowucil
Отправлено: 23 Июля, 2016 - 21:57:32
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




Здравствуйте.

Помогите извлечь содержимое всех 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’ы и пробелы.
 
 Top
Строитель Модератор
Отправлено: 23 Июля, 2016 - 23:38:39
Post Id



Участник


Покинул форум
Сообщений всего: 1496
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 66 раз(а)




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.  


-----
~ PHP-7 & REGEXP - This is a really powerful kit ~
****************************************
 
 Top
dohowucil
Отправлено: 24 Июля, 2016 - 23:26:27
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




Строитель пишет:
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.  


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

Спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB