Поддержка Проблемы и решения помогите с регуляркой

  • добавляю класс кодом:

    $pattern ="/<img(.*?)class=\"(.*?)\"(.*?)>/i";
    $replacement = '<img $1class="$2 cool-image-share"$3>';
    $content = preg_replace($pattern, $replacement, $content);

    добавляю так, а не через родные функции wordpress, чтобы обработать вручную вставленные картинки.
    беда в том, что на своем собственном сайте я вообще классы не использую, соответственно надо как-то добавить в случае, если атрибута class в теге image не имеется.

    то есть как задать паттерн, чтобы он брал все теги img, где нет «class=»? должно быть просто, но что-то с регулярками у меня беда.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    После текущего кода можно добавить:

    $pattern = "/<img(?!([^>]*\b)class=)([^>]*?)>/i";
    $replacement = '<img $1class="cool-image-share"$2>';
    $content = preg_replace( $pattern, $replacement, $content );

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    должно быть просто, но что-то с регулярками у меня беда.

    Я тоже не особо знаток :), но думаю стоит попробовать так:

    $pattern = "{<\s*img\s*(?![^>]+class)(src=[^>]*)>}i";
    $replacement = '<img $1 class="cool-image-share">';
    $content = preg_replace($pattern, $replacement, $content);

    отлично все работает, спасибо огромное!

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «помогите с регуляркой» закрыта для новых ответов.