如中所述PHP 文档 http://php.net/manual/en/reserved.variables.server.php, the $_SERVER
超全局数组包含两个元素,REQUEST_TIME
and REQUEST_TIME_FLOAT
,两者都包含请求开始的时间戳,具有不同的精度级别。
我当前正在使用以下代码片段来包含服务器在页面页脚中生成页面所需的时间(以毫秒为单位):
round((microtime(true)-$_SERVER['REQUEST_TIME_FLOAT'])*1000,2);
它返回一个准确的值(无法真正检查,但它似乎与浏览器开始加载页面所需的时间相匹配),但我想知道哪个确切的时刻$_SERVER['REQUEST_TIME']
and $_SERVER['REQUEST_TIME_FLOAT']
变量包含时间戳?虽然我认为这些时间戳之间的差异并不显着,但我想知道时间戳是在哪个时刻拍摄的。是发送请求的时间、收到请求的时间、PHP 开始解析文档的时间还是其他时间?
通过检查 PHP 源代码,大多数情况下它似乎从 SAPI 本身获取初始请求时间 - 意思是来自 Apache、Nginx、CLI 服务器、CGI...等。
Sources:
- $_SERVER['REQUEST_TIME']定义 https://github.com/php/php-src/blob/master/main/php_variables.c#L680-684
-
sapi_get_request_time() https://github.com/php/php-src/blob/master/main/SAPI.c#L1087-L1102 (
SG()
代表“SAPI 全球[value]")
- php_apache_sapi_get_request_time() https://github.com/php/php-src/blob/master/sapi/apache2handler/sapi_apache2.c#L362-L366
-
sapi_module
定义[1] https://github.com/php/php-src/blob/master/main/main.c#L2149 [2] https://github.com/php/php-src/blob/master/main/SAPI.c#L79
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)