代码之家  ›  专栏  ›  技术社区  ›  Ahmed Syed

如何在JS中编码URL和在PHP中解码?

  •  4
  • Ahmed Syed  · 技术社区  · 9 年前

    以下是我的JS代码:

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

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

    “products.php?price_range=-INFto2000%2C2001to5000”

    而不是

    “products.php?price_range=-INFto0002001to5000”

    我的php代码将能够使用 -INFto2000,2001to5000 在里面 $_GET['price_range']

    2 回复  |  直到 8 年前
        1
  •  3
  •   Skyyy    8 年前

    您可以使用 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()

        2
  •  1
  •   webaholik Unixmonkey    8 年前

    在javascript代码中尝试此操作

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

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