xparser и регулярка

подскажите как сделать так чтобы из текста вырезались все дивы с содержимым, но при этом остались p
умелец наделал делов, приходится разгребать
есть такое сейчас но оно вырезает вообще все
@INLINE {$news_content | preg_replace : '/<div class="rtcode">.*?<\/div>|<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>|<span>.*?RT.*?<\/span>|<(.|\n)*?>/'}
Евгений
24 ноября 2020, 17:11
modx.pro
151
0

Комментарии: 11

Евгений
24 ноября 2020, 18:28
0
подскажите каким выражением можно убрать все div с их содержимым
    Denis Bushaev
    25 ноября 2020, 00:18
    0
    {$str | removeTags : '<p>'}
    $fenom->addModifier('removeTags', function ($str, $allowedTags) {
        return strip_tags($str, $allowedTags);
    });
    Как добавить свой модификатор, читай: docs.modx.pro/komponentyi/pdotools/parser#%D0%A1%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%B3%D0%B8-Fenom
      Евгений
      25 ноября 2020, 01:21
      0
      не понимаю куда этот код?
      с таким описанием все становится еще более непонятным…
        Павел Гвоздь
        25 ноября 2020, 05:48
        0
        То что в pdoTools по-умолчанию есть такой модификатор, тебя не смущает? В документации он описан.
          Евгений
          25 ноября 2020, 09:04
          0
          так striptags не нужен мне, так как нужно сохранить теги p. или есть вариант как это совместить?
            Евгений
            25 ноября 2020, 17:19
            0
            подскажи пожалуйста, как в синтаксис понятный xparser можно преобразовать такое?
            preg_replace("(<div([\S\s]*?)</div>|</div>|<a([\S\s]*?)</a>)iu", "", $txt)
              Павел Гвоздь
              27 ноября 2020, 08:17
              0
              Ну ты же сам писал в посте… разве что ещё один атрибут добавить для указания того, на что заменять вырезаемую строку. То бишь на пустоту.
              Denis Bushaev
              26 ноября 2020, 21:56
              0
              У них кардинальные различия. PHP вырезает контент, а fenom просто удаляет теги.
                Павел Гвоздь
                27 ноября 2020, 08:12
                0
                Что за бред? И там, и у тебя используется одна PHP функция для обработки – strip_tags. Ох уж это магическое мышление в программировании…
                  Denis Bushaev
                  27 ноября 2020, 15:46
                  +1
                  Хм. Действительно. Запутался из-за того, что редко использую эту функцию в самом php. А когда в последний раз использовал она мне обрезала часть контента (прочитал в документации, что такое случается, когда html невалиден).
            Евгений
            25 ноября 2020, 02:05
            0
            пробовал перечислить дивы с классами, обычные все уходят, но вот такие — «read-more__photo» не пропадают, в них __ двойное подчеркивание видимо както мешает :(
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              11