[英]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.