Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript编码组件与PHP ulrencode_Php_Javascript_Urlencode - Fatal编程技术网

JavaScript编码组件与PHP ulrencode

JavaScript编码组件与PHP ulrencode,php,javascript,urlencode,Php,Javascript,Urlencode,它们之间的区别在于PHP的urlencode使用+编码空格,而不是%20 对这两种语言做相同事情的函数有哪些 在PHP中使用rawurlencode而不是urlencode。在PHP自己的文档中点击此链接 rawurlencode将实现此功能,该链接仅供参考。实际上,即使使用JavaScript encodeURIComponent和PHP rawurlencode,它们也不完全相同,例如('字符,JavaScript encodeURIComponent不会将其转换,但PHP rawurlen

它们之间的区别在于PHP的
urlencode
使用
+
编码空格,而不是
%20


对这两种语言做相同事情的函数有哪些

在PHP中使用
rawurlencode
而不是
urlencode

在PHP自己的文档中点击此链接


rawurlencode
将实现此功能,该链接仅供参考。

实际上,即使使用JavaScript encodeURIComponent和PHP rawurlencode,它们也不完全相同,例如('字符,JavaScript encodeURIComponent不会将其转换,但PHP rawurlencode会将其转换为%28。经过一些实验和其他人的提示后,例如这个问题

我找到了最终的解决办法

您所需要做的就是使用add下面的代码

function fixedEncodeURIComponent(str) {
    return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
        return '%' + c.charCodeAt(0).toString(16);
    });
}
例如,现在它们将完全相同

fixedEncodeURIComponent(yourUrl) (JavaScript) = (PHP) rawurlencode(yourUrl)

解码没有问题,您可以使用decodeURIComponent()对于JavaScript和rawurldecode for PHP来说,这真的是这样吗?PHP文档让我很困惑…它说,
rawurlencode
是用于/../,而
urlencode
是用于/?…这可能很有用:。这是一个在线工具,可以让您查看两种语言中的每个函数如何编码URI。
rawurlencode
encodeURI组件
产生了相同的输出。