Я пытаюсь заменить амперсанды в моем html по всей ширине, используя preg_replace, но проблема в том, что он ломает встроенный javascript && или URL-адрес javascript как? Page = test & id = 1
Теперь у меня есть этот код, который работает
$amp_replace = array();
$amp_replace[0] = '/(?<=\s)&(?!&)(?!#?[a-z0-9]+;)/';
$amp_replace[1] = '/(?<!&)&(?=\s)/';
$skin = preg_replace($amp_replace, '&', $skin);
Заменяет амперсанды при наличии свободного места слева или справа.не заменяйте, когда 2 амперсанда в строке (для javascript) или когда следует html-сущность.
Но я нахожу здесь довольно ненужную логику.Он также не заменяет амперсанды, если это похоже на «test & test».
Поскольку я не эксперт по регулярным выражениям, это заняло у меня довольно много времени, поэтому я подумал, что снова обращаюсь за помощью.
Не было бы лучшепросто заменить все амперсанды, если не в тегах сценария JavaScript?Я попробовал это уже, но без особого успеха
Кто-нибудь знает, как я могу заархивировать это?Спасибо