我在用“urlencoded”字符串“%2B”替换“+”符号时遇到了一些麻烦。我怎么能这样做?
这是我尝试过的:
文本输入文本框:
plus(+)
然后我对该字符串进行了urlencode:
$string = urlencode($string);
字符串现在看起来像:
plus%28+%29
我想要“+”urlencoded,否则当我在urldecode()中显示要在浏览器中显示的数据时,我最终得到:
plus( )
因为urldecode()将“+”解释为空格。
我尝试使用php的str_replace(),但我继续收到“NULL”作为“$ new_string”的值:
$new_string = str_replace('+', '%2B', $string);
有什么想法吗?
提前致谢!
答案 0 :(得分:42)
这很奇怪。当我在urlencode
上使用plus(+)
时,我得到plus%28%2B%29
。确保你正确使用它。
您也可以尝试rawurlencode
。它会将空格编码为%20
而不是+
。
答案 1 :(得分:0)
那对我有帮助:
function _rawurlencode($string) {
$string = rawurlencode(str_replace('+','%2B',$string));
return $string;
}