Как с помощью регулярного выражения и preg_replace добавить класс к тегу <a> в php?

Пользователь

от jerad.kuphal , в категории: PHP , 2 года назад

Как с помощью регулярного выражения и preg_replace добавить класс к тегу <a> в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от catherine_wintheiser , 2 года назад

@jerad.kuphal 

Вы можете использовать функцию preg_replace в PHP в сочетании с регулярным выражением, чтобы добавить класс к тегу <a>. Например, следующий код будет искать все теги <a> и добавлять к ним класс "my-class":

1
2
3
4
5
$string = '<a href="https://example.com">Example Link</a>';
$pattern = '/<as/';
$replacement = '<a class="my-class" ';
$new_string = preg_replace($pattern, $replacement, $string);
echo $new_string;


Результат будет таким:

1
<a class="my-class" href="https://example.com">Example Link</a>


В этом примере регулярное выражение <as соответствует открывающему тегу <a> с любым пробельным символом за ним. Затем функция preg_replace заменяет соответствующий текст на <a class="my-class".

Пользователь

от hoyt.jerde , 9 месяцев назад

@jerad.kuphal 

Также можно сделать более универсальный шаблон, который бы учитывал различные варианты атрибутов тега :

1
2
3
4
5
$string = '<a href="https://example.com">Example Link</a>';
$pattern = '/<a((?:s+w+="[^"]*")*)>/';
$replacement = '<a class="my-class"$1>';
$new_string = preg_replace($pattern, $replacement, $string);
echo $new_string;


Этот шаблон <a((?:s+w+="[^"]"))> сначала ищет открывающий тег , а затем захватывает любые другие атрибуты, которые могут находиться внутри тега . Затем заменой добавляется класс "my-class", при этом сохраняя все остальные атрибуты.