Heim  >  Artikel  >  Backend-Entwicklung  >  对于php.ini中常会触及到的"限制"总结

对于php.ini中常会触及到的"限制"总结

WBOY
WBOYOriginal
2016-08-08 09:29:531283Durchsuche

max_execution_time
php最大执行时间,php.ini中默认数值为30,即在页面执行30s后,服务器会直接强制终止页面的执行。

对于一般的页面,30s足够了,但对于有些需要直接利用php执行进行大量数据分析的页面,你就需要根据页面执行的效率,调整max_execution_time的值,当然尽可能改善你的算法,获得最佳页面执行效率。
max_input_vars
php最大提交表单(控件)数,php.ini中默认值为1000,即一个form表单post数据中所含控件数(input)不能超过1000个。

1000个input还不够用?人填得过来么?可能你会有这样的疑问,但在实际的编程过程中我的确遇到了这样的问题:上传一份excel表格文档,利用PHPExcel类库进行解析后输出到一个页面给用户进行确认,确认完按“提交数据”插入到数据库中,每一单元数据存放于form-input(hidden)中,input数量在200(行)*8(列)=1600,超过默认数量,结果每次插入数据库的都是前125条数据。

刚遇到这个问题时,我就在页面上直接输出了$_POST的值,发现仅有125条记录,可以确定就是post传输出现的问题。在网上查到为数不多的类似问题信息,基本聚焦于php对post大小限制,但在php.ini中我发现post_max_size默认值为32M,post一份表单的数据量无论如何也不会超过32M,觉得问题应该不会是post的大小限制。我之后觉察到可能是对于控件的限制,终于找到了max_input_vars是对post控件的限制。然而在我本机装配的wamp的php.ini中还找不到max_input_vars的相关信息,只能自行添加。

<code><span>; Maximum input variable nesting level</span><span>; http://php.net/max-input-nesting-level</span><span>;max_input_nesting_level = 64</span><span>max_input_vars = <span><span>5000</span>;   //默认<span>1000</span></span></span><span>; Maximum amount of memory a script may consume (128MB)</span><span>; http://php.net/memory-limit</span><span>memory_limit = <span><span>128</span>M</span></span></code>


upload_max_filesize与post_max_size
一个是对于上传文件最大的限制,一个是对于post最大的限制。

需要利用php post上传大文件时记得都要更改(最大文件值 max_input_time
此变量是以秒为单位对通过post、get方式接收数据时间进行限制,默认值为60,即60s。

如果应用程序所运行环境处在低速链路上,则可以增加此值以适应接收数据所需的更多时间。

以上就介绍了对于php.ini中常会触及到的"限制"总结,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn