URL中多个问号的问题
在PHPChina论坛看一到一个关于”t.php??a=b”这样的问题。 根据RFC3986这应该是不准确的,但服务器会怎样处理呢?
经过测试,Apache2, 与Nginx处理一致, 都是从第一个问号开始处理,之后的问号当作Query的健或值来处理,如“t.php???a=1?b=2&?c=3”的QUERY_STRING为”??a=1?b=2&?c=3″,因此PHP会处理为这样:
array(2) { ["??a"]=> string(5) "1?b=2" ["?c"]=> string(1) "3" }
但PHP5.4内置的Web server将前面几个连续的问号处理为一个,因此得到这样的QUERY_STRING: “a=1?b=2&?c=3″。