如何在JS中编码URL并在PHP中解码?
How to encode URL in JS and Decode in PHP?
以下是我的JS代码:
window.location.href = 'products.php?price_range=-INFto2000,2001to5000';
我的问题是如何在 javascript 中编码 URL 并在 PHP 中解码,这样我的浏览器的导航栏就会显示
"products.php?price_range=-INFto2000%2C2001to5000"
而不是
"products.php?price_range=-INFto2000,2001to5000"
和我的 php 代码将能够在 $_GET['price_range']
中使用 -INFto2000,2001to5000
的正确值
在您的 javascript 代码中试试这个
window.location.href = 'products.php?price_range='+encodeURIComponent('-INFto2000,2001to5000');
您可以在 $_GET['price_range'] 中访问解码后的值。 $_GET 变量默认在 PHP.
中解码
可以使用encodeURI()
这个函数对特殊字符进行编码,除了: , / ? : @ & = + $ #
到: , / ? : @ & = + $ #
使用encodeURIComponent()
编码所有字符的最佳方法是运行两个函数
var url = 'products.php?price_range=-INFto2000,2001to5000';
url = encodeURI(url);// Encode special characters
url = encodeURIComponent(url);//Encodes : , / ? : @ & = + $ # characters
默认情况下 php 自动 decode
编码 URL,因此您无需执行任何操作。您可以像这样简单地访问 URL 参数
$_REQUEST['price_range'];
出于某些原因,如果您必须解码 URL 客户端,您可以使用 decodeURI()
& decodeURIComponent()
以下是我的JS代码:
window.location.href = 'products.php?price_range=-INFto2000,2001to5000';
我的问题是如何在 javascript 中编码 URL 并在 PHP 中解码,这样我的浏览器的导航栏就会显示
"products.php?price_range=-INFto2000%2C2001to5000"
而不是
"products.php?price_range=-INFto2000,2001to5000"
和我的 php 代码将能够在 $_GET['price_range']
-INFto2000,2001to5000
的正确值
在您的 javascript 代码中试试这个
window.location.href = 'products.php?price_range='+encodeURIComponent('-INFto2000,2001to5000');
您可以在 $_GET['price_range'] 中访问解码后的值。 $_GET 变量默认在 PHP.
中解码可以使用encodeURI()
这个函数对特殊字符进行编码,除了: , / ? : @ & = + $ #
到: , / ? : @ & = + $ #
使用encodeURIComponent()
编码所有字符的最佳方法是运行两个函数
var url = 'products.php?price_range=-INFto2000,2001to5000';
url = encodeURI(url);// Encode special characters
url = encodeURIComponent(url);//Encodes : , / ? : @ & = + $ # characters
默认情况下 php 自动 decode
编码 URL,因此您无需执行任何操作。您可以像这样简单地访问 URL 参数
$_REQUEST['price_range'];
出于某些原因,如果您必须解码 URL 客户端,您可以使用 decodeURI()
& decodeURIComponent()