从我读过的内容来看,似乎$_SERVER['REQUEST_URI']
并不总是能正确返回查询字符串,但有人对成功率有很好的了解吗?它在大多数情况下对普通客户有用吗?
如果有的话,什么会导致REQUEST_URI
不填充或不包含查询字符串?
从我读过的内容来看,似乎$_SERVER['REQUEST_URI']
并不总是能正确返回查询字符串,但有人对成功率有很好的了解吗?它在大多数情况下对普通客户有用吗?
如果有的话,什么会导致REQUEST_URI
不填充或不包含查询字符串?
您询问:
如果有的话,什么会导致 REQUEST_URI 不被填充?
我能想到的答案:
Web 服务器$_SERVER
向 PHP 提供所有值,因此如果服务器不提供它们,则不会设置它们。这对于任何体面的 Web 服务器来说都是极不可能的,但这是可能的。
如果从命令行运行 PHP 程序,它不会有任何$_SERVER
值。(如果您不担心这一点,请记住单元测试通常是从命令行运行的,因此您是否遵循最佳实践并编写单元测试很重要)
如果有的话,什么会导致 REQUEST_URI 不被填充?
谷歌搜索似乎表明 IIS 就是这种情况(但当时是真的,现在可能不是):
https://bugs.launchpad.net/xibo/+bug/654536
(有一篇关于 IIS 修复的文章:http: //davidwalsh.name/iis-php-server-request_uri)
以及“服务器”不是您的标准Web 服务器的其他情况(例如调试服务器插件等)。
它被注意到但被认为是不太为人所知或旧版本的 Web 服务器(lighthttpd、iPlanet Web Server 7.0)中的一个错误。
所以我相信你可以合理地确定变量总是会被填充。当然,明智的做法是尽早准备一个非常小的测试脚本在客户的站点上运行,以便得到预警。