@cncfrez

Как правильно написать регулярное выражение в PHP и задать атрибуты?

У меня есть вот такая функция:
function enable_fancybox( $matches=array() ) {

    $matches[0] = str_replace ( 'class="highslide"', 'data-fancybox="gallary" class="emmaimg"', $matches[0] );

    return $matches[0];
}


В $matches[0] - содержатся все картинки с ссылками для галереи такого типа:
<a href="/1.webp" data-fancybox="gallary">
  <img src="/1.webp" alt="$img_alt">
</a>


Изначально все эти ссылки с картинками содержат только css класс "highslide" и с помощью str_replace я нахожу все картинки и задаю им свои новые параметры.

Вопрос:
Как мне дублировать содержимое alt="" от картинки в data-caption ссылки в которую обернута эта картинка?
Т.е по факту, нужно чтобы описание картинки вставлялось в data атрибут ссылки в которую эта картинка обернута
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Если в $matches[0] хранится не массив, а обычная строка (с одной картинкой!), то вот:
if (preg_match('/<img[^>]+?alt="([^">]+)"/', $matches[0], $regs)) $matches[0] = str_replace('data-fancybox="gallary"', 'data-fancybox="gallary" alt="{$regs[1]}"', $matches[0]);
Ответ написан
Ваш ответ на вопрос

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

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