如何在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()