我有一个执行时间很长的循环,我希望脚本在循环迭代完成时显示一些内容。echo"Hello!";flush();for($i=0;$i在整个脚本完成之前,这不会显示回显。出了什么问题? 最佳答案 来自PHP手册:flush()可能无法覆盖您的网络服务器的缓冲方案,并且它对浏览器中的任何客户端缓冲都没有影响。它也不影响PHP的用户空间输出缓冲机制。这意味着如果您正在使用ob输出缓冲区,则必须同时调用ob_flush()和flush()来刷新它们。echo"Hello!";flush();ob_flush();for($i=0;$i-或者
嗨请查看以下代码:\n";for($i=0;$i\n";ob_flush();flush();sleep(1);}echo"End...\n";?>不正确?我已经测试过了,但是我的输出显示脚本完成后,有什么解决方案吗? 最佳答案 嘿,伙计,我也陷入了这个问题终于得到了正确的解决方案这是给你的您必须为您的页面添加内容类型你可以通过两种方式做到这一点1.使用html标签例如WpMigration';ob_flush();flush();sleep(3);}?>使用php头函数例如';ob_flush();flush();sleep(3)
嗨请查看以下代码:\n";for($i=0;$i\n";ob_flush();flush();sleep(1);}echo"End...\n";?>不正确?我已经测试过了,但是我的输出显示脚本完成后,有什么解决方案吗? 最佳答案 嘿,伙计,我也陷入了这个问题终于得到了正确的解决方案这是给你的您必须为您的页面添加内容类型你可以通过两种方式做到这一点1.使用html标签例如WpMigration';ob_flush();flush();sleep(3);}?>使用php头函数例如';ob_flush();flush();sleep(3)
使用PHP,我想创建一个while循环来读取一个大文件并在请求时发送当前行号。使用Ajax,我想获取当前行数并将其打印到页面上。使用html按钮,我希望能够单击并激活或终止仅运行一次并调用ajax方法的javascript线程。我试了一下,但出于某种原因,除非我注释掉echostr_repeat('',1024*64);函数,否则不会打印任何内容,当它被注释掉时,它会显示整个循环结果:1行已处理。2行已处理。3行已处理。4行已处理。5行已处理。6行已处理。7行已处理。8行已处理。9行已处理。10行已处理。在一行中而不是在单独的行中显示它们,例如:1row(s)processed.2ro
使用PHP,我想创建一个while循环来读取一个大文件并在请求时发送当前行号。使用Ajax,我想获取当前行数并将其打印到页面上。使用html按钮,我希望能够单击并激活或终止仅运行一次并调用ajax方法的javascript线程。我试了一下,但出于某种原因,除非我注释掉echostr_repeat('',1024*64);函数,否则不会打印任何内容,当它被注释掉时,它会显示整个循环结果:1行已处理。2行已处理。3行已处理。4行已处理。5行已处理。6行已处理。7行已处理。8行已处理。9行已处理。10行已处理。在一行中而不是在单独的行中显示它们,例如:1row(s)processed.2ro
我编写了一个简单的中继脚本,它连接到网络摄像头并从套接字读取数据,并使用打印功能输出这些数据。数据是已设置边界的MJPG数据。我只是输出读取的数据。问题是PHP似乎正在缓冲这些数据。当我将相机设置为1FPS时,提要会卡住7-8秒,然后快速显示8帧。如果我将分辨率设置为很大,相机会以每秒或多或少1帧的速度移动。我假设当时正在发生一些缓冲(因为大尺寸会快速填充缓冲区,而小尺寸不会),我不知道如何禁用这种缓冲。有人知道怎么做吗?代码:ignore_user_abort(false);$boundary="myboundary";//SetthissoPHPdoesn'ttimeoutduri
我编写了一个简单的中继脚本,它连接到网络摄像头并从套接字读取数据,并使用打印功能输出这些数据。数据是已设置边界的MJPG数据。我只是输出读取的数据。问题是PHP似乎正在缓冲这些数据。当我将相机设置为1FPS时,提要会卡住7-8秒,然后快速显示8帧。如果我将分辨率设置为很大,相机会以每秒或多或少1帧的速度移动。我假设当时正在发生一些缓冲(因为大尺寸会快速填充缓冲区,而小尺寸不会),我不知道如何禁用这种缓冲。有人知道怎么做吗?代码:ignore_user_abort(false);$boundary="myboundary";//SetthissoPHPdoesn'ttimeoutduri
ob_clean()和ob_flush()有什么区别?此外,ob_end_clean()和ob_end_flush()之间有什么区别?我知道ob_get_clean()和ob_get_flush()都获取内容并结束输出缓冲。 最佳答案 *_clean变体只是清空缓冲区,而*_flush函数打印缓冲区中的内容(将内容发送到输出缓冲区)。示例:ob_start();print"foo";//Thisneverprintsbecauseob_end_cleanjustemptiesob_end_clean();//thebufferand
ob_clean()和ob_flush()有什么区别?此外,ob_end_clean()和ob_end_flush()之间有什么区别?我知道ob_get_clean()和ob_get_flush()都获取内容并结束输出缓冲。 最佳答案 *_clean变体只是清空缓冲区,而*_flush函数打印缓冲区中的内容(将内容发送到输出缓冲区)。示例:ob_start();print"foo";//Thisneverprintsbecauseob_end_cleanjustemptiesob_end_clean();//thebufferand
它们似乎都在做同样的事情:将输出缓冲区内容返回给您,然后将其删除。我应该使用哪一个? 最佳答案 ob_get_clean()删除缓冲区(不打印),并返回其内容。ob_get_flush()打印缓冲区,将其删除并返回其内容。这两个函数都会终止缓冲区。 关于php-ob_get_clean和ob_get_flush的区别,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7379735/