它们之间的区别在于PHP urlencode
使用+
代替%20
来编码空格?
对这两种语言执行相同操作的功能有哪些?
答案 0 :(得分:15)
在PHP中使用rawurlencode
代替urlencode
。
答案 1 :(得分:1)
在php自己的文档中{{3p>
rawurlencode
会做到这一点,链接仅供参考。
答案 2 :(得分:0)
实际上,即使使用JavaScript encodeURIComponent和PHP rawurlencode,它们也不完全相同,例如'('字符,JavaScript encodeURIComponent不会将其转换,但是PHP rawurlencode会将其转换为%28。其他诸如该问题another Stackoverflow question。
我找到了最终的解决方案here。
您需要做的就是使用添加以下代码
object
例如,它们现在完全相同相同
function fixedEncodeURIComponent(str) {
return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
return '%' + c.charCodeAt(0).toString(16);
});
}
解码没问题,您可以使用JavaScript的解码URIComponent()和PHP的rawurldecode