PHPのファイルアップロードのファイル要領制限を変更するには次の3つのパラメーターを調整する必要があります。 (必ずしも3つの値を揃える必要はありません)
upload_max_filesize = 256M
post_max_size = 256M
memory_limit = 256M
upload_max_filesize = 256M
post_max_size = 256M
memory_limit = 256M
# ファイルアップロードの最大サイズを 10Mに設定
php_value upload_max_filesize 10M
php_value post_max_size 10M
# ファイルアップロードの最大サイズを 500Kに設定
php_value upload_max_filesize 500K
php_value post_max_size 500K
// ファイルアップロードの最大サイズを 10M に設定
ini_set('upload_max_filesize', 10 * 1024 * 1024);
print "upload_max_filesize: " . ini_get('upload_max_filesize')." Bytes です。";
とします。
PHPプログラムが使用しているメモリを取得するには
$mem = memory_get_usage(); $mem = number_format($mem); print("Memory:{$mem}");
などとするとよいでしょう。
※ ただし関数を呼び出した時点での使用メモリなので注意。
最大どれだけメモリを使用したかは
memory_get_peak_usage();
で取得できます
メソッドとして持っておくといいでしょう
public function dumpmem() { print "\n".'<pre style="text-align:left;">'."\n"; $mem = number_format(memory_get_usage()); $peakmem = number_format(memory_get_peak_usage()); print("Memory:{$mem} / Peak Memory:{$peakmem}"); print "\n</pre>\n"; }
サイズの大きな画像やCSVを加工中にメモリエラー PHP Fatal error: Allowed memory size of 8388608 bytes exhausted が発生することがあります。
このエラーはメモリ不足なので、PHPの最大使用メモリを増やしてあげると回避できます。 下記の例では200MBytesに設定しています。
/etc/php.ini の設定を以下のように変える
memory_limit = 500M ; Maximum amount of memory a script may consume (8MB)
ギガバイト表記も使えます (4ギガにしたい場合)
memory_limit = 4G ; Maximum amount of memory a script may consume (8MB)
PHPプログラム内に下記コードを記述する
ini_set('memory_limit', '200M');