【问题标题】:$_SERVER['REQUEST_URI'] generating extra & in URL$_SERVER['REQUEST_URI'] 在 URL 中生成额外的 &
【发布时间】:2011-03-11 20:38:53
【问题描述】:

这里有一个问题

$_SERVER['REQUEST_URI'] 

吐出: /dev/nava2/store/index.php?route=product/product&product_id=48

实际网址是/dev/nava2/store/index.php?route=product/product&product_id=48

显然,区别在于顶部的 & 与底部的 &

完整代码如下所示:

$currentpage = $_SERVER['REQUEST_URI'];  
$classic = "/dev/nava2/store/index.php?route=product/product&product_id=48";


if ($currentpage == $classic) 
    { $classicclass = "current";

    } 

else { echo "";} 

有什么建议吗?

【问题讨论】:

    标签: php


    【解决方案1】:

    &&对应的html实体。您可以使用html_entity_decode 获取原始字符串:

    $original = html_entity_decode($_SERVER['REQUEST_URI']);
    

    【讨论】:

    • 而且 url 不应包含 & 而应包含 &,但是大多数浏览器/Web 服务器会努力纠正用户输入...参见 w3c Appendix B: §B.2.2
    【解决方案2】:

    您可以使用html_entity_decode() 来获取实际的网址,但最上面的应该可以。我不认为你需要改变任何东西。如果您确实需要更改 uri 的某些部分,也可以使用 str_replace 或 preg_replace。

    【讨论】:

      【解决方案3】:
      echo html_entity_decode($_SERVER['REQUEST_URI']);
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-22
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      相关资源
      最近更新 更多