我的网站上有一个博客页面,用户通过转到这样的网址来编辑帖子... http://www.example.com/blog?edit=blog post here
。用于替换%20
的空格的脚本应该如此,但现在它用%2520
替换空格,现在脚本无法搜索数据库,因为没有名为blog20post20here
的帖子。我打算沿着preg_replace的路走下去,所以我试过了......
preg_replace("/%2520/"," ",$_GET['edit']);
但这似乎不起作用。
我从未使用preg_replace()
,我刚刚在手册中阅读了它。如果有人可以指出我正确的道路,或者告诉我如何正确使用preg_replace
那将是非常棒的。
答案 0 :(得分:3)
听起来你在生成网址时会在某处双重逃避。 %25是%字符的编码,因此它听起来像从%20到%2520。
顺便说一句,有更好的方法来解码这个网址(例如urldecode()),所以也许preg_replace并不是真的有必要......
编辑:哦,你应该首先使用urlencode来生成网址。
答案 1 :(得分:0)
适用于%2520
<?php echo urldecode(urldecode($_GET['edit'])); ?>
适用于%20
<?php echo urldecode($_GET['edit']); ?>