За последние 24 часа нас посетили 20029 программистов и 1703 робота. Сейчас ищут 1747 программистов ...

Помощь с preg_replace

Тема в разделе "Сделайте за меня", создана пользователем Crashlabs, 5 окт 2016.

  1. Crashlabs

    Crashlabs Новичок

    С нами с:
    5 окт 2016
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте, уважаемые эксперты.

    Возникла необходимость вырезать со страницы следующий код с одним исключением:
    Код (Text):
    1. <div style="text-align:center;">
    2. <!--TBegin:http:/site.ru/uploads/posts/2016-10/123.jpg|-->
    3. <a href="http:/site.ru/uploads/posts/2016-10/123.jpg" rel="highslide" class="highslide">
    4. <img src="http:/site.ru/uploads/posts/2016-10/123.jpg" alt='123' title='123'  />
    5. </a>
    6. <!--TEnd-->
    7. </div>
    Исключение:
    Код (Text):
    1. <img src="http:/site.ru/uploads/posts/2016-10/123.jpg" alt='123' title='123'  />
    Также, если можно, то бы и в исключении заменить img на amp-img.

    Замечу, что страниц на сайте много и каждая содержит свою картинку (http:/site.ru/uploads/posts/2016-10/123.jpg - всегда разная)

    К сожалению, пытался составить сам данную функцию, но достаточно далек от PHP.

    Искренне надеюсь на Вашу помощь.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Могу переместить в раздел "сделайте за меня", там могут бесплатно помочь или в раздел free-lance, там уже за деньги.
    Куда переносить? Так как в остальных разделах обычно только учат.

    Ещё можешь показать свои наработки, если готов учиться, то подскажут куда копать дальше
     
    Crashlabs нравится это.
  3. Crashlabs

    Crashlabs Новичок

    С нами с:
    5 окт 2016
    Сообщения:
    2
    Симпатии:
    0
    Благодарю за ответ. Можно тогда в раздел "сделайте за меня"
     
    #3 Crashlabs, 5 окт 2016
    Последнее редактирование: 5 окт 2016
  4. Emilien

    Emilien Активный пользователь

    С нами с:
    30 июн 2016
    Сообщения:
    246
    Симпатии:
    156
    Если я правильно понял задачу, то должно быть примерно так:
    PHP:
    1. $str = <<<END
    2. <div style="text-align:center;">
    3. <!--TBegin:http:/site.ru/uploads/posts/2016-10/123.jpg|-->
    4. <a href="http:/site.ru/uploads/posts/2016-10/123.jpg" rel="highslide" class="highslide">
    5. <img src="http:/site.ru/uploads/posts/2016-10/123.jpg" alt='123' title='123'  />
    6. </a>
    7. <!--TEnd-->
    8. </div>
    9. END;
    10.  
    11.     '~<div[^>]*>\s*<!--TBegin.+?<!--TEnd-->\s*</div>~s',
    12.     function ($m) {
    13.         return str_replace('<img', '<amp-img', strip_tags($m[0], '<img>'));
    14.     },
    15.     $str
    16. );
    17. echo $str;
     
    denis01 и Crashlabs нравится это.