繁体   English   中英

preg_replace将字符串中的¬替换为有趣的字符

[英]preg_replace replacing &not in string to funny character

出于某种原因,当preg_replace看到&not字符串中并用¬替换它时:

$url= "http://something?blah=2&you=3&rate=22&nothing=1";

echo preg_replace("/&rate=[0-9]*/", "", $url) . "<br/>";

但输出如下:

http://something?blah=2&you=3¬hing=1      // Current result
http://something?blah=2&you=3&nothing=1   // Expected result

任何想法为什么会发生这种情况以及如何预防?

&使用URI时具有特殊含义。 您的URI包含&not ,它本身就是一个有效的HTML实体。 它被转换为¬ ,因此造成了麻烦。 正确地逃避它们并且&amp;not避免这个问题。 如果您的数据是从其他地方获取的,则可以使用htmlspecialchars()自动执行此操作。

使用此&amp ; 代替这个&

因为你的&no特殊意义

使用此网址:

http://something?blah=2&amp;you=3&amp;rate=22&amp;nothing=1

然后相应地进行更换

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM