将当前页面网址中的“+”替换为“%2B”或空格

时间:2014-07-02 01:09:25

标签: php

我有一个通过表单提交生成的URL和传递的变量。我不会详细说明,但URL中的“+”会破坏系统,所以我想用'%2B'替换它。

然而,到目前为止我尝试的每种方法都没有奏效。我已经尝试了各种PHP URL解码方法,但它们都不起作用,因为它们会替换URL中的其他字符,这会再次破坏它。


网址如下所示:

www.domain.com/catalog/search.php?sort_by=relevance&some_filter%5B%5D=filter+term


我还尝试获取当前页面网址并使用str_ireplace将“+”字符替换为常规空格或“%2B”,但都无济于事。

我将不胜感激任何帮助!
感谢

1 个答案:

答案 0 :(得分:1)

如果您使用的是php,请尝试使用urlencode()和urldecode()

http://www.php.net/manual/en/function.urlencode.php

它将为您省去更换字符(然后更换)的麻烦。

这是一个更接近您的用例的完整示例。

<?php

$foo = str_replace('+','%2B', 'www.domain.com/catalog/search.php?sort_by=relevance&some_filter%5B%5D=filter+term');

echo urldecode($foo);