如何在JS中编码URL并在PHP中编码?

时间:2015-04-02 06:30:04

标签: javascript php urlencode urldecode

以下是我的JS代码:

window.location.href = 'products.php?price_range=-INFto2000,2001to5000';

我的问题是如何在javascript&中编码网址?用PHP解码它,这样我的浏览器的导航栏就会显示

  

" products.php PRICE_RANGE = -INFto2000%2C2001to5000"

而不是

  

" products.php PRICE_RANGE = -INFto2000,2001to5000"

我的php代码将能够在-INFto2000,2001to5000

中使用$_GET['price_range']的正确值

2 个答案:

答案 0 :(得分:1)

您可以使用encodeURI()此功能对除: , / ? : @ & = + $ #

以外的特殊字符进行编码

: , / ? : @ & = + $ #使用encodeURIComponent()

编码所有字符的最佳方法是运行两个函数

var url = 'products.php?price_range=-INFto2000,2001to5000';
url = encodeURI(url);// Encode special characters
url = encodeURIComponent(url);//Encodes : , / ? : @ & = + $ # characters

默认情况下,php会自动decode编码的URL,因此您无需执行任何操作。您只需访问此类

之类的网址参数即可
 $_REQUEST['price_range'];

出于某些原因,如果您必须解码网址客户端,则可以使用decodeURI()& decodeURIComponent()

答案 1 :(得分:0)

在您的javascript代码中尝试此操作

window.location.href = 'products.php?price_range='+encodeURIComponent('-INFto2000,2001to5000');

您可以访问$ _GET ['price_range']中的解码值。 $ _GET变量默认在PHP中解码。