捕获查询字符串时$ _SERVER ['REQUEST_URI']的可靠性如何?

Dav*_*nes 6 php query-string

从我读过的内容来看,似乎$_SERVER['REQUEST_URI']并不总能正确地返回查询字符串,但是有没有人对成功率有什么了解?在普通客户的大多数情况下它会起作用吗?

什么,如果有的话,会导致REQUEST_URI不填充或不包括查询字符串?

Spu*_*ley 6

您询问:

什么,如果有的话,会导致REQUEST_URI不被填充?

我能想到的答案:

  1. Web服务器为$_SERVERPHP 提供所有值,因此如果服务器不提供它们,则不会设置它们.对于任何体面的Web服务器来说这都是不太可能的,但是可能.

  2. 如果从命令行运行PHP程序,它将没有任何$_SERVER值.(如果您不担心这一点,请记住,单元测试通常是从命令行运行的,因此如果您遵循最佳实践并编写单元测试,则无关紧要)