вывод url из background-image без кавычек

занимаюсь парсингом, написал на php, и встал такой вопрос, как сделать чтобы при парсинге, выводилась чистая ссылка?

вот код:

"img" => 'https://site.ru'.$pq->find('.constructor__image.is-visible')->attr('style')

выводится так:

https://site.rubackground-image: url('/upload/merged_picture/620563ca25fc94ef404ba5ed72920de3/image.png');

хотелось бы так:

https://site.ru/upload/merged_picture/620563ca25fc94ef404ba5ed72920de3/image.png

подскажите как так сделать?


Ответы (1 шт):

Автор решения: Максим Н Епихин

Попробуйте с помощью регулярного выражения "#url\('(?<url>.*)'\)#:

$url = "https://site.ru";
$string = "background-image: url('/upload/merged_picture/620563ca25fc94ef404ba5ed72920de3/image.png');";

preg_match("#url\('(?<url>.*)'\)#", $string, $matches);

if (!empty($matches) && !empty($matches['url'])) {
    echo "https://site.ru{$matches['url']}";
}
  • url\(' - начало поиска
  • ('(?<url>.*) - группа с именем url
  • '\) - конеч поиска

Соответственно, возьмется значение между url\(' и '\).

→ Ссылка