对于具有'&'的字段,有什么好的解决方法?我有一个网站通过$ _GET获取东西,但有些字段是,例如:'Pants& short'...当我把它放在一个URL中时,它会搞得一团糟:)任何PHP修复它? :)
例如:
的http://本地主机/衣服/性别=既与秩序=最新&安培;时间=所有&安培;类型=裤%20安培;%20Shorts
谢谢!
答案 0 :(得分:4)
查看urlencode()
的PHP手册
http://nl.php.net/manual/en/function.urlencode.php
答案 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_query
或rawurlencode
:
$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');