在PHP脚本中设置超时和文件大小值的位置


Where to set timeout and file size values in PHP script

为了在PHP中上传大文件,我需要增加文件大小/超时值。我不是在谈论改变php.ini,而是在运行时这样做。

对应的值为

ini_set('upload_max_filesize', '20M');
ini_set('post_max_size', '20M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);

void set_time_limit ( int $seconds )

但是我想知道我需要在哪里设置这个,或者我是否可以这样做?因为在发送上传数据时,脚本只在接收到数据后才执行。所以在我增加超时时间之前,超时时间就开始了,还是我错了?

那么我需要在哪里应用这些设置呢?

并非所有php.ini指令都可以在运行时更改。即使他们这样做,一些指令也没有意义。

查看php.ini指令列表。在可变列下,任何具有PHP_INI_ALL的配置都可以在运行时(通过您的PHP脚本)更改。

如果你有权限访问php.ini文件,那就编辑它吧——不要为运行时的修改而烦恼。但是,在某些情况下,您需要在运行时增加特定的PHP配置。

set_time_limit将计数器重置为0,因此脚本可以多次调用它。这可能有助于在foreach循环中设置max_execution_time

例如,如果您必须处理一个大文件或其他东西,您可能希望仅为实例增加max_execution_time

From php manual for ini_set

设置给定配置选项的值。配置选项将在脚本执行期间保留这个新值,并且将在脚本结束时恢复。

即使你的PHP脚本不能有效地改变值,你的。htaccess文件可以。(对于PHP_INI_PERDIR指令)。

查看文档

的例子:

<IfModule mod_php5.c>
   php_value  upload_max_filesize  2M
   php_flag magic_quotes_sybase              off
   php_flag register_globals                 off
</IfModule>

同样,如果可能的话,优先使用php.ini文件。