我正在尝试使用 preg_replace 在我的 html 侧面替换 & 符号,但问题是它破坏了内联 javascript && 或 javascript url,如 ?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 实体时,不要替换。
但我在这里发现它相当不需要的逻辑。如果它像测试和测试,它也不会替换&符号。
由于我不是正则表达式专家,这花了我很长时间,所以我想我再次在这里寻求帮助。
如果不在 javascript 脚本标签中,那么简单地替换所有 & 符号不是更好吗?我已经尝试过了,但没有真正的成功
有谁知道我如何存档?谢谢