[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярка бэкграунда тега style
DZHETIGAPA
Здравствуйте! Есть задача из тега style забирать путь картинки из бэкграунда.

Пример:

$str = "background: url('data/small/karina_1.jpg') center center no-repeat;width:100px; height:100px; min-height:100px;min-width:100px;";


Составил регулярку таким образом:

preg_match("/url\((.*)\)/", $str, $matches);


Результат:


(
[
0] => url('data/small/karina_1.jpg')
[
1] => 'data/small/karina_1.jpg'
)


Вроде бы все работает и радует, но может быть ситуация, когда скобок в style не одна, а несколько. Пример:

$str = "background: url('data/small/karina_1.jpg') center center no-repeat;(data data)width:100px; height:100px; min-height:100px;min-width:100px;";


В таком случае регулярка явно не то выдает. Результат:

(
[
0] => url('data/small/karina_1.jpg') center center no-repeat;width:100px; (data data)
[
1] => 'data/small/karina_1.jpg') center center no-repeat;width:100px; (data data
)


Как сделать универсальную регулярку, которая выдергивает картинку из бэкграунда.
Placido
Почитай о жадности регулярных выражений. Три возможных решения (третий вариант по скорости самый лучший):
preg_match("/url\((.*)\)/U", $str, $matches);
preg_match("/url\((.*?)\)/", $str, $matches);
preg_match("/url\(([^)]*)\)/", $str, $matches);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.