2011-10-03 43 views
4

是否可以将POST请求限制为大小?我有一个很大的过程,我想缓存输出。基本上我想在缓存中存储一​​个简单的html表格,因为特殊项目的增长,查询的数量以及响应时间都失去了控制。一个PHP文章的最大大小?

现在我发送一个ajax调用,在另一个ajax调用中获取的大输出(在第一个完成后),但我只返回一小块数据。我认为我的ajaxfunction是正确的,因为存储的输出总是相同的(以字符为单位)。但我错过了缓存中90%的输出...

+0

有多大? ---- –

+0

它是可配置的。请参阅php.ini。 – John

+0

可能重复的[PHP的:什么是一个后全局变量的总长度?](http://stackoverflow.com/questions/2276759/php-whats-the-total-length-of-a-post-global-variable ) –

回答

7

默认情况下,POST方法的最大大小为8 Mb(可通过在php.ini文件中设置post_max_size来更改) 。

“难道是POST请求被限制为大小吗?”

是的,有一个PHP设置:post_max_size

+0

感谢您的回复!我认为这不会解决我的问题。我认为这些输出源只有几KB,而不是多个MB的.... – Ben

2

寻找在你的php.ini这些设置

; Maximum size of POST data that PHP will accept. 
; http://php.net/post-max-size 
post_max_size = 8M 

; Maximum amount of memory a script may consume (128MB) 
; http://php.net/memory-limit 
memory_limit = 128M 

的post_max_size指定POST的最大尺寸,并且由于它具有被包含在内存中,内存限制必须更大。内存将不得不包含正在运行的程序和所有堆变量,包括POST。

如果您仅增加post_max_size超过或接近内存限制并忘记增加memory_limit,则在内存耗尽时POST大小将被限制为较低的值。

在此示例中,您可以看到默认设置。

+0

感谢您的回复,请参阅其他评论.. :) +!虽然 – Ben

2

我刚刚遇到了这个问题,发现自PHP 5.3.9以来有一个新的设置可用,它限制了post变量的总数(不仅仅是大小)。

max_input_vars = 1000 

如果您当时正在使用PHP的夜间或候选发布版本,这可能与您遇到的问题相同。