草庐IT

缓冲池

全部标签

php - 如何让 Apache 停止缓冲 POST 数据?

当通过XHR流将文件上传到Apache网络服务器上运行的PHP脚本时,某些东西会缓冲整个POST正文,然后在整个文件上传后将其传递给PHP。这非常耗费内存,而且不是最优的。我有另一台配置大致相同的服务器,它将POST数据直接流式传输到PHP脚本,从而导致内存使用率低。我这辈子都搞不清楚配置上的差异。是否有任何明显的设置“BufferPostBodyYes”我应该寻找?到目前为止我尝试了什么禁用mod_security通过HTTP而不是HTTPs发送文件检查apache日志、php日志、系统日志。没有错误或警告。我如何测试行为开始通过XHR流通过JS上传大文件(235M)。PHP应在请求

php - PHP/Apache 中的输出缓冲 block 如何工作?

假设我正在从PHP向浏览器回显随机数据。随机数据总量约为XGb,回显以YKbblock的形式完成。ob_start()未被使用。在PHP和Apache缓冲区已满后回显调用是否会阻塞(客户端无法以与生成数据相同的速度使用数据)?如果是这样,PHP和Apache缓冲区的大小是多少?我理解的对吗,过程:PHPecho正在将字节发送到php输出缓冲区,直到它已满。在那之后echo开始阻塞,直到一些缓冲区被发送到Apache并因此被清除PHP正在从它的输出缓冲区发送数据,直到Apache缓冲区已满。之后Apache停止从PHP接收数据并等待,直到部分缓冲区被发送到客户端并被清除。附言如果您对我要

php - 如何在 PHP 输出缓冲区的开头添加一些内容?

如何将某些内容附加到输出缓冲区的开头?例如,假设您有以下代码:ob_start();echo'Startofpage.';echo'Middleofpage.';echo'Endofpage';在将内容刷新到浏览器之前,我如何附加一些内容以使其出现在之前Startofpage.页面何时加载?这听起来很简单,就像将指针移动到数组的开头一样,但我找不到如何使用输出缓冲区来完成它。 最佳答案 **PHP5.3**ob_start(function($output){$output='Prepended'.$output;return$ou

php - 输出缓冲 ob_get_clean 不工作

我的代码下面的代码可以按我的要求正常工作。它不会在浏览器上发送我真正想要的任何输出。ob_start();echo"test";echo"test";$output=ob_get_clean();但问题出在我下面的代码中。下面的代码开始在浏览器上发送输出,即使我在最后有$output=ob_get_clean();ob_start();for($i=0;$i";}$output=ob_get_clean();我无法理解输出缓冲的概念。每个人都说您可以控制输出并在需要时发送输出,但我上面的脚本开始将输出发送到浏览器。 最佳答案 可以缓

PHP:缓冲区的isset?

是否有像isset这样的方法可以确定是否有要删除/刷新的缓冲区?Notice:ob_end_flush():failedtodeleteandflushbuffer.Nobuffertodeleteorflush.我不会将错误报告从最高灵敏度调低,因为如果您考虑周全,这样做是非常不安全的。那么我该如何解决这个问题呢? 最佳答案 看ob_get_level和/或ob_get_status. 关于PHP:缓冲区的isset?,我们在StackOverflow上找到一个类似的问题:

php - 如何在 php 中设置输出缓冲区名称?

我一直在浏览PHP的文档ob_get_status函数,发现如下:ReturnValues:Ifcalledwithoutthefull_statusparameterorwithfull_status=FALSEasimplearraywiththefollowingelementsisreturned:Array([level]=>2[type]=>0[status]=>0[name]=>URL-Rewriter[del]=>1)一切似乎都很清楚,但是所有的互联网似乎都无法回答出现的一个问题-如何设置输出缓冲区的名称?有可能做到吗?我在文档本身或其他任何地方都找不到任何线索。但是文

PHP 输出缓冲?最佳做法是什么?

进一步到我的previousquestion,当我想在执行完所有处理之前缓冲PHP输出时,最好的方法是什么?我想缓冲让自己可以选择重定向到错误页面,这是我在任何输出后都做不到的。那么,最好的做法是什么?使用变量$output并继续附加到它,然后在最后输出它?或者使用ob_str()等?是否有性能来选择一个代码可维护性原因而不是另一个?还是只是个人喜好? 最佳答案 对我来说,我是这样做的: 关于PHP输出缓冲?最佳做法是什么?,我们在StackOverflow上找到一个类似的问题:

php - 使用 PDO 对一个请求进行无缓冲查询

我希望只对某些请求进行无缓冲查询。在mysql中我是这样做的:$req=mysql_unbuffered_query('SELECT*FROMforum_topicsORDERBY(topic_id/topic_stick)DESC,topic_last_postDESC');while($data=mysql_fetch_assoc($req)){//displayresults...}我查看了php文档,根据pdo中的内容,我们必须以这种方式进行无缓冲查询:$pdo=newPDO("mysql:host=localhost;dbname=world",'my_user','my_p

php - 写入 PHP 输出缓冲区,然后从缓冲区下载 CSV

我需要将CSV文件写入PHP输出缓冲区,然后在写入完成后将该文件下载到客户端计算机。(我只想把它写在服务器上,然后下载它,这是可行的,但事实证明我在生产服务器上没有写权限)。我有以下PHP脚本:$basic_info=fopen("php://output",'w');$basic_header=array(HEADER_ITEMS_IN_HERE);@fputcsv($basic_info,$basic_header);while($user_row=$get_users_stmt->fetch(PDO::FETCH_ASSOC)){@fputcsv($basic_info,$use

php - 在我的本地 XAMPP 服务器上禁用输出缓冲

出于某种原因,我的XAMPP服务器正在缓冲我的PHP的输出。我希望它随它吐出来。有人知道我需要更改哪些设置才能实现此目的吗? 最佳答案 XAMPP似乎默认将output_buffering设置为4096。(因此内容以4Kblock的形式提供——这可能是一种性能优势。尽管这可能会导致意外错误(例如,“标题已发送”等)如果部署在禁用此功能的服务器上,顺便说一下,这是PHP的默认设置。)在php.ini中:;DefaultValue:Off;DevelopmentValue:4096;ProductionValue:4096;http:/