首頁  >  文章  >  後端開發  >  對於php.ini常會觸及到的"限制"總結

對於php.ini常會觸及到的"限制"總結

WBOY
WBOY原創
2016-08-08 09:29:531281瀏覽

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教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn