Задать вопрос
@suhuxa1

Как с помощью php вырезать целый блок html?

Добрый день!
Получаю html код определенной странице. Внутри есть такая конструкция:
<div class="container">
  <div class="box">
    ..... (some code)
  </div>
  <div class="box">
    ..... (some code)
  </div>
  <div class="box">
    ..... (some code)
  </div>
  <div class="box">
    ..... (some code)
  </div>
</div>


Как можно вырезать весь блок container со всем содержимым? В голову приходят регулярные выражения, но я без понятия, как вырезать так, если заканчивается наш блок на </div>, но и перед этим тоже есть </div>.

Заранее благодарю!
  • Вопрос задан
  • 1096 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
Justique
@Justique
https://regex101.com/r/iIGpJV/1

$content = '<div class="container">
  <div class="box">
    ..... (some code)
  </div>
  <div class="box">
    ..... (some code)
  </div>
  <div class="box">
    ..... (some code)
  </div>
  <div class="box">
    ..... (some code)
  </div>
</div>';

preg_match("#<div class=\"container\">(.+?)\n<\/div>#is", $content, $res);

var_dump($res);
Ответ написан
doublench21
@doublench21
Зачем вы человеку советуете старьё, которое к тому же медленное???
https://github.com/Imangazaliev/DiDOM + там же документация на русском есть.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Ответ написан
Комментировать
402d
@402d
начинал с бейсика на УКНЦ в 1988
https://habrahabr.ru/post/69149/
и не говорите, что старье ;) Для того кто работал с селекторами JQuery проще либы нет
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽