访问其值包含'&'的$ _GET变量

时间:2011-05-19 17:22:10

标签: php

对于具有'&'的字段,有什么好的解决方法?我有一个网站通过$ _GET获取东西,但有些字段是,例如:'Pants& short'...当我把它放在一个URL中时,它会搞得一团糟:)任何PHP修复它? :)

例如:

  

的http://本地主机/衣服/性别=既与秩序=最新&安培;时间=所有&安培;类型=裤%20安培;%20Shorts

谢谢!

6 个答案:

答案 0 :(得分:4)

答案 1 :(得分:3)

答案 2 :(得分:2)

撰写网址时:

http://localhost/clothes/<? echo urlencode('pants & shorts'); ?>/

答案 3 :(得分:0)

PHP似乎在对url编码的名称进行解码,因此您可以使用:

[pants & shorts] == [pants%20%26%20shorts]

答案 4 :(得分:0)

我使用的一种解决方法(即使它可能不是最佳解决方案)是改变&amp;使用文本并在通过$ _GET检索后,您可以将其更改回来。

例如,您可以更改&amp;在发送之前发送“andsign”:


 $your_var_without_and = str_replace("&", "andsign", $your_var);

检索后再将其更改:


 $your_var_without_and = $_GET['your_var_without_and'];

 $your_var = str_replace("andsign", "&", $your_var_without_and);

答案 5 :(得分:0)

构建URI查询时,请使用http_build_queryrawurlencode

$query = array('sex'=>'both', 'order'=>'newest', 'time'=>'all', 'type'=>'Pants & Shorts');
$url = 'http://localhost/clothes/?'.http_build_query($query);

$url = 'http://localhost/clothes/?sex=both&order=newest&time=all&type='.rawurlencode('Pants & Shorts');