Как получить URL-адрес из изображений, шрифтов и т. Д. В CSS-файлах?

Я пытаюсь получить это из CSS-файлов:

url(/myServer/img/mosaico.png)

и я пытаюсь с этим:

preg_match_all('/url\((["\']?)((?!["\']?[data:]?).*?\.(gif|png|jpg|jpeg|svg|woff|eot|ttf))\\1\)?/i', $content, $matches, PREG_SET_ORDER))

Но это не работает свойство, выражение только фиксирует некоторые вхождения. В чем проблема?

Мне также нужно получить части в скобках в регулярном выражении, например:

array(
(int) 0 => 'url(/img/arrow-top-white.png)',
(int) 1 => '',
(int) 2 => '/img/arrow-top-white.png',
(int) 3 => 'png'
)

1

Решение

Вы можете использовать приведенное ниже регулярное выражение для сопоставления всех строк, упомянутых выше.

url\(((?:\/[^\/()]+?)+?\.(gif|png|jpg|jpeg|svg|woff|eot|ttf))[^)]*\)

DEMO

<?php
$content = "url(/myServer/img/mosaico.png)";
preg_match_all('~url\(((?:\/[^\/]+)+\.(gif|png|jpg|jpeg|svg|woff|eot|ttf))\)~', $content, $matches, PREG_SET_ORDER);
print_r($matches);
?>

Выход:

Array
(
[0] => Array
(
[0] => url(/myServer/img/mosaico.png)
[1] => /myServer/img/mosaico.png
[2] => png
)

)
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]