草庐IT

缓冲池

全部标签

PHP 输出缓冲

简单问题:如果我启用输出缓冲...ob_start();$a=true;header('Location:page.php');$a=false;ob_end_flush();...$a会被注册为false,还是会在不处理命令的情况下重定向页面(就像未启用输出缓冲一样)?谢谢! 最佳答案 除非您在header重定向后调用exit()或die(),否则$a将为false,因为页面的其余部分将继续解析(有或没有缓冲)。除非您有特殊原因,header("Location:...");后面应始终跟有上述函数之一,以免浪费cpu周期或内存。

PHP 输出缓冲区基准测试(与 usleep 一起使用时微时间不准确?)

我发布了一个可以复制的奇怪行为(至少在apache2+php5上)。我不知道我是否做错了,但让我解释一下我试图实现的目标。我需要发送大block的二进制数据(比如30)并在最后分析平均Kbit/s:我总结每个block的输出时间,每个block的大小,并在最后执行我的Kbit/s计算。在上面的这个例子中,它到目前为止工作正常(在本地主机上,它通过不同的测试从​​7000到10000Kbit/s振荡)。现在,假设我想对传输进行整形,因为我知道客户端将有足够的数据block来处理一秒钟。我决定使用usleep(1000000)来标记block传输之间的暂停。在最后一个例子中,我不知道为什么

php - 如何将 PHP error_log() 语句回显到输出缓冲区

我使用PHPStorm开发PHPWeb应用程序并使用其内置的PHPUnit测试运行器。在IDE的输出窗口中,它显示了输出缓冲区(例如,任何已回显的内容)。我可以通过使用ini_set('display_errors','On')和error_reporting(E_ALL)查看错误。然而,使用error_log()的任何输出都不会显示(但会出现在错误日志中)。有没有办法让我将任何写入错误日志的内容也显示在输出缓冲区中? 最佳答案 足够简单:包装函数。functionerror_log_out($message,$message_ty

php - Node JS 读入缓冲数据

出于某种原因,当我向端口发送消息并尝试通过缓冲区读取它时,它总是挂起,因为似乎永远不会到达socket.on('end')。有什么想法吗?varnet=require('net');varbuffer=[];varserver=net.createServer(function(socket){socket.on('data',function(data){buffer.push(data);});socket.on('end',function(){try{vardata=buffer.join("");console.log(data);socket.end('ok');}catc

来自 PHP 的 JavaScript(带有 Ajax)和输出缓冲

我现在从我的PHP脚本中得到了一个有效的JSON格式文件。下一步是使用JavaScript脚本来检索此数据以进行排序、过滤和显示。我有一个有效的Ajax脚本,测试可以正常提取数据,但我需要针对个人对其进行个性化设置。在PHP中,我有一个名为MID(成员(member)ID)的session变量。我正在尝试使用PHP构建具有唯一URL的JavaScript,并将MID作为变量。除了用外部PHP脚本中的MID变量替换JavaScript文本中的midValue变量外,以下所有内容似乎都有效。到目前为止的代码看起来像这样......//ThisisaPHPfile//SetupPHPOutp

php - 在服务器忽略的脚本 PHP 输出缓冲区设置中

我一直在尝试按需将某些脚本的输出刷新到浏览器,但它们在我们的生产服务器上不起作用。例如,我尝试运行“PhocaChangingCollat​​iontool”(在Google上找到它),但在脚本执行完成之前我看不到任何输出。我已经尝试立即刷新其他脚本上的缓冲区,这些脚本在任何服务器上都可以正常工作,但使用以下代码的这个脚本:echo"something";ob_flush();flush();设置“ob_implicit_flush(1);”也没有帮助。服务器是Apache2.2.21,在Linux上运行PHP5.2.17。如果有帮助,您可以在此处查看我们的php.ini文件:http

PHP 输出缓冲区出现白屏并且方法返回时没有错误

我已经使用PHP很长时间了,由于某种原因迁移到新服务器导致了白屏死机。显然这一定是因为版本差异。多年来我一直在使用相同的输出缓冲区模式。通常...ob_start();?>//HTML...最近我在返回HTML部分并在View之间传递它们时(我使用MVC)在我的正常/更新版本的PHP(我认为在我的WAMP上5.4+)中发现了一些问题。它们完全显示在屏幕上,根本没有保存在缓冲区中。我发现我的ob_start()中需要一个必要的标志来让它知道可以删除缓冲区。像这样ob_start(null,0,PHP_OUTPUT_HANDLER_REMOVABLE);但是现在我的页面是实时的,而不是在W

php - 通过 mod_proxy 使用 Apache 和 PHP-FPM 禁用输出缓冲区

在将Apache与PHP作为模块一起使用时,只要PHP生成内容就可以输出内容,因为您可以简单地禁用PHP中的output_buffering并使用flush()或implicit_flush(1)。这是我以前使用的,效果很好。自从切换到PHP-FPM后,我遇到了一个问题,在整个脚本完成之前,我无法让Apache(2.4)输出PHP的内容。我仍然关闭了output_buffering并进行了刷新,但这还不够。Apache没有使用mod_gzip(无论如何这都会影响PHP模块)。Nginx有一个禁用proxy_buffering的选项,通过阅读其他人的评论修复了这个问题,但我找不到在Apa

php - 通过 str_replacing 输出缓冲区中的内容将 php 页面中的所有非 ssl 引用转换为 ssl 是一种好习惯吗?

我需要替换php的html输出中的所有非ssl引用。通过对输出缓冲区中的内容执行str_replace并将其刷新出来是一种好习惯吗?实际上在php代码中有很多include和require,所以通过找到每个引用的位置来完成它真的很乏味。有什么硬性快速的方法可以解决这个问题吗?这是我在做什么的粗略想法 最佳答案 通过str_replacing输出缓冲区中的内容将php页面中的所有非ssl引用转换为ssl是一个好习惯吗?-->否。这是因为您的页面可能实际上需要提供包含“http://”的内容,而它们不一定是链接。我只是说有时您可能需要输

PHP 刷新所有级别的输出缓冲

我正在尝试实现一个简单的HttpResponse类,该类实现了HttpStreaming(或Chunked-Encoding)。为此,我需要在php.ini中设置output_buffering=Off,并以一定的时间间隔刷新输出。PHP自动完成了这项工作-除了实际的刷新机制。我已经让它工作了,但我不确定它是否过火了。我想知道如何在不调用十亿个函数的情况下一次刷新每个级别的输出缓冲(我不确定哪些函数在哪些环境/哪些场景中是多余的)。while(ob_get_level()){ob_end_flush();}//printthebufferflush();ob_flush();这是矫枉过