Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否有一种方法可以在脚本的中间放置脚本执行的秒数(或“页面加载时间”)?_Php - Fatal编程技术网

Php 是否有一种方法可以在脚本的中间放置脚本执行的秒数(或“页面加载时间”)?

Php 是否有一种方法可以在脚本的中间放置脚本执行的秒数(或“页面加载时间”)?,php,Php,我想输入搜索脚本在PHP中搜索所需的秒数。但是,我不想把这个数字放在这一页的底部。我把它放在PHP文件的顶部: $time_start = microtime(true); 然后我把这个放在呼应号码的地方: $time_end = microtime(true); echo number_format($time_end - $time_start, 5); 问题是,这并不包括整个脚本,因为还有很多其他代码在其中。有没有一种方法可以确定执行所需的时间,但可以在页面上的另一个位置而不是底部进行

我想输入搜索脚本在PHP中搜索所需的秒数。但是,我不想把这个数字放在这一页的底部。我把它放在PHP文件的顶部:

$time_start = microtime(true);
然后我把这个放在呼应号码的地方:

$time_end = microtime(true);
echo number_format($time_end - $time_start, 5);

问题是,这并不包括整个脚本,因为还有很多其他代码在其中。有没有一种方法可以确定执行所需的时间,但可以在页面上的另一个位置而不是底部进行回显?

不精确,但您可以使用以下方法获得非常接近的近似值:


我可以想到三种可能性:

  • 回显页面底部Javascript中的值。该脚本可以在加载页面后立即修改DOM,因此该值可以插入文档中的任何位置。缺点:对于不支持或忽略Javascript的客户端不起作用

  • 作弊并提前停止计时。您必须在文档中需要时间的点之前完成所有时间密集型的工作(即,将所有结果预加载到内存中,然后进行回显),因此您不测量的部分可以忽略不计。缺点:它不完全准确,预加载可能会带来麻烦或内存效率低下

  • 使用缓冲所有输出,并在脚本末尾对输出缓冲区内容执行搜索和替换。缺点:根据您的情况,可能效率低下


您是想在网页顶部展示它(我想可以用css实现),还是想让它成为php标准输出的第一行(需要某种缓冲)?尝试一下这里提出的javascript/jquery解决方案,没有想到最上面的解决方案,但这似乎是一个不错的解决方案!第一个是个好主意。此外,此搜索是web应用程序的一部分,因此没有JavaScript的用户无论如何都不能使用它。我将使用第一种解决方案,这似乎是三种解决方案中最好的一种。
<?php

$time_start = microtime(true);

ob_start();
// Do stuff here
$page = ob_get_contents();
ob_end_clean();

$time_end = microtime(true);
$elapsed = number_format($time_end - $time_start, 5);

var_dump($page, $elapsed);

?>