DevartNigga
@DevartNigga
Потный

Как вытащить все div с помощью регулярок?

Дарова.

Есть это
$elem = "
   <div>что-то</div>
   <div>что-то</div>
   <div>что-то</div>
   <div>что-то</div>
   <div>что-то</div> ";


Пытаюсь вывести значение дивов:
preg_match("/(?<=<div>).*(?=<\/div>)/", $elem, $arr);

но выходит только только значение 1 дива. Помоги пожалуйста, не силен я в регулярках
  • Вопрос задан
  • 1193 просмотра
Решения вопроса 5
@stunoff
попробуйте
preg_match_all
Ответ написан
Комментировать
Используйте как вам говорили preg_match_all и изучите жадность и линивость иначи .* будет забирать весь текс до последнего закрытого div
Ну и по вопросу
<div>(.*?)<\/div>
в preg_match_all в результирующий массив в ;$res[0] массив попадает все выражение целиком а вот в $res[1] массив попадет именно то что вам нужно.
Ответ написан
Комментировать
@jaxel
Регулярки для этого не лучший вариант. Для HTML лучше использовать парсер - symfony/dom-crawler например. Простая выборка селекторами схожими с тем, что используются в jquery.
Ответ написан
Stalker_RED
@Stalker_RED
Если именно регуляркой, то как-то так и match_all, конечно же.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы