PHP 如何 运行 和显示功能序列,而不是等待所有完成然后显示 1 次
PHP How to run and display functions sequence, not to wait all to finish then display 1 time
正如标题,我有一个带有一些功能的脚本,当我运行那个文件(在网络服务器上)时,它会等待所有功能完成然后一次显示所有结果到屏幕。
我只想 运行 一个函数并显示它的结果然后执行下一个函数。示例:
<?php
function Fun1(){
echo 'Done 1st func';
sleep(3); //This is run time of Func1
}
function Fun2(){
echo 'Done 2nd func';
sleep(3); //This is run time of Func2
}
function Fun3(){
echo 'Done 3rd func';
}
?>
然后结果将首先显示为:
Done 1st func
在 Func1 加载 3s 后,添加了另一行:
Done 2nd func
Func2 加载 3 秒后
Done 3rd func
不是那样(等待 6 秒后):
Done 1st func
Done 2nd func
Done 3rd func
提前致谢:)
您没有指定是否要在命令行或 Web 服务器上 运行 脚本。但是由于 运行在 CLI 中使用它已经产生了输出,我假设您将在 Apache 中使用它。
为了在发生时立即显示输出,您需要清除 PHP 的输出缓冲区并立即刷新输出。
这是一个例子:
<?php
while(ob_get_level()) ob_end_clean();
ob_implicit_flush(true);
function Fun1(){
echo 'Done 1st func';
sleep(3); //This is run time of Func1
}
function Fun2(){
echo 'Done 2nd func';
sleep(3); //This is run time of Func2
}
function Fun3(){
echo 'Done 3rd func';
}
?>
注意:只要 PHP 作为 Apache 模块安装,它就可以工作。您可以在 phpinfo(); 中查看。如果它作为 CGI 处理程序或 FastCGI 安装,那么您也必须禁用它们的输出缓冲区。
正如标题,我有一个带有一些功能的脚本,当我运行那个文件(在网络服务器上)时,它会等待所有功能完成然后一次显示所有结果到屏幕。 我只想 运行 一个函数并显示它的结果然后执行下一个函数。示例:
<?php
function Fun1(){
echo 'Done 1st func';
sleep(3); //This is run time of Func1
}
function Fun2(){
echo 'Done 2nd func';
sleep(3); //This is run time of Func2
}
function Fun3(){
echo 'Done 3rd func';
}
?>
然后结果将首先显示为:
Done 1st func
在 Func1 加载 3s 后,添加了另一行:
Done 2nd func
Func2 加载 3 秒后
Done 3rd func
不是那样(等待 6 秒后):
Done 1st func
Done 2nd func
Done 3rd func
提前致谢:)
您没有指定是否要在命令行或 Web 服务器上 运行 脚本。但是由于 运行在 CLI 中使用它已经产生了输出,我假设您将在 Apache 中使用它。
为了在发生时立即显示输出,您需要清除 PHP 的输出缓冲区并立即刷新输出。
这是一个例子:
<?php
while(ob_get_level()) ob_end_clean();
ob_implicit_flush(true);
function Fun1(){
echo 'Done 1st func';
sleep(3); //This is run time of Func1
}
function Fun2(){
echo 'Done 2nd func';
sleep(3); //This is run time of Func2
}
function Fun3(){
echo 'Done 3rd func';
}
?>
注意:只要 PHP 作为 Apache 模块安装,它就可以工作。您可以在 phpinfo(); 中查看。如果它作为 CGI 处理程序或 FastCGI 安装,那么您也必须禁用它们的输出缓冲区。