如果两个会怎么样?在php url之后

时间:2011-08-10 13:10:46

标签: php parameters

如果URL链接是这样的话,会发生什么

http://abc.com/123.php?p=1?source=yahoo&key=56

可以123.php检索所有参数吗?

5 个答案:

答案 0 :(得分:2)

在PHP $ _GET中将保留以下内容(var_dump($_GET)的结果)

array(2) { ["p"]=> string(14) "1?source=yahoo" ["key"]=> string(2) "56" }

如果您想使用问号(或其他保留的字符),请使用urlencode

答案 1 :(得分:0)

没有。我认为这不是一个有效的查询字符串。

答案 2 :(得分:0)

自己测试:

print_r($_GET);

我测试了一下:

  

数组([p] => 1?source = yahoo [key] => 56)

如果您可以控制附加到网址的字符串,请使用urlencode

答案 3 :(得分:0)

p将会消失,你应该这样做

$url = 'http://abc.com/123.php?'.urlencode('p=1?source=yahoo&key=56');

答案 4 :(得分:0)

来自RFC 1738 - Uniform Resource Locators (URL)

  

只有字母数字,特殊字符$-_.+!*'(),和用于保留目的的保留字符可以在URL中以未编码的方式使用。

字符?是保留字符。由于您提供的URL不是为了保留目的而使用它(将“路径”与“searchpart”分开),因此URL是非法的,您不应该依赖任何特定的行为。

?字符进行编码,如果您想要可预测的行为,请确保该网址合法。