@Httdientee

Не получается выполнить регулярное выражение?

<?php

$test = '<img loading="lazy"
                                  src="//www.gravatar.com/avatar/ace483d9a9207b222b22130857ace315?s=20&#038;r=g&#038;d=mm"
                                  class="avatar bpbm-avatar-user-id-1 user-1-avatar avatar-20 photo" width="20"
                                  height="20" alt="Profile picture of Test St"  data-size="20" data-user-id="1" />';
                                  
                                  $url     = 'https://test.com';
$test = preg_replace('~<img[^>]+src="\K(?=/)~', $url, $test);
var_dump($test);


Получаю результат
string(388) "<img loading="lazy"
                                  src="https://test.com//www.gravatar.com/avatar/ace483d9a9207b222b22130857ace315?s=20&#038;r=g&#038;d=mm"
                                  class="avatar bpbm-avatar-user-id-1 user-1-avatar avatar-20 photo" width="20"
                                  height="20" alt="Profile picture of Test St"  data-size="20" data-user-id="1" />"

(Преждная ссылка почему остается в аттрибуте src)
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Не особо понимаю, что вы своей регуляркой хотели сказать, но вот так ссылка заменяется:
$url = '${1}"https://test.com"';
$test = preg_replace('~(<img[^>]+src=)"([^"]+?)"~', $url, $test);

https://onlinephp.io/c/f221e
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы