#php #replace #conditional
#php #заменить #условные операторы
Вопрос:
У меня есть html-строка, подобная —
...style="background-position: left top; background-image: url("http://localhost/abc/{DYNAMIC CONTENT}") etc...
Каким был бы быстрый и эффективный способ заменить двойные кавычки внутри url("")
части на одинарные, если после style =» двойные кавычки есть», мне не нужно заменять кавычки везде, только в этом определенном месте. Спасибо.
Комментарии:
1. Было бы хорошо знать, как
{DYNAMIC CONTENT}
вставляется.
Ответ №1:
Используйте регулярное выражение (соответствует достаточному контексту для уменьшения ложных срабатываний):
$src = preg_replace(
'#(style="[^"] :s*url) [(]" ([^"] ) "[)]#x',
"$1('$2')",
$src
);
Хотя это заменяет только " "
пару двойных кавычек на строку style=
. Таким образом, вам, возможно, придется дважды запускать его над вашим исходным кодом, если вы ожидаете несколько искаженных атрибутов / url («..») выражений.
Комментарии:
1. Возможно, это правильное направление, но example не работает. Также я не смог найти объяснение о символе : в регулярном выражении. Хотя спасибо, 1 за ответ.
2. Действительно нет? Я протестировал это на вашем точном примере фрагмента HTML. —
:
Просто представляет буквальное двоеточие, потому чтоurl(
ему должна предшествовать единица. — codepad.org/QdhemmBY в качестве теста.3. Извини, Марио, ты был прав, с моей стороны произошла опечатка, я принимаю твой ответ.