繁体   English   中英

带有空格的preg_replace“%2520”

[英]preg_replace “%2520” with a space

我的网站上有一个博客页面,用户通过转到这样的网址来编辑帖子... http://www.example.com/blog?edit=blog post here 该脚本用于替换%20的空格,但它现在用%2520替换空格,现在脚本无法搜索数据库,因为没有名为blog20post20here 我打算沿着preg_replace的路走下去,所以我尝试了这个......

preg_replace("/%2520/"," ",$_GET['edit']);

但这似乎不起作用。

我从未使用过preg_replace() ,我现在只是在手册中阅读它。 如果有人能指出我正确的道路,或者告诉我如何正确使用preg_replace ,这将是非常棒的。

听起来你在生成网址的时候会在某个地方双重逃避。 %25是%字符的编码,所以它听起来像是从%20到%2520。

顺便说一句,有更好的方法来解码该url(例如urldecode()),所以也许preg_replace不是真的必要...

编辑:哦,你应该首先使用urlencode生成网址。

对于%2520

<?php echo urldecode(urldecode($_GET['edit'])); ?> 

对于%20

<?php echo urldecode($_GET['edit']); ?> 

暂无
暂无

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

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