Diễn đàn Nhật Bản - diendannhatban.info

NHÀ PHÁT TRIỂN - DEVELOPERS - 技術開発 => LẬP TRÌNH - PROGRAMMING => PHP => Tác giả chủ đề:: admin trong Thứ năm, 5/11/2015, 04:16:21 pm

Tiêu đề: Trong PHP bị lỗi quá bộ nhớ cho phép thì làm thế nào?
Gửi bởi: admin trong Thứ năm, 5/11/2015, 04:16:21 pm
Trong PHP bị lỗi quá bộ nhớ cho phép thì làm thế nào?
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted

(http://images.diendannhatban.info/albums/php/2015-11-05_1720_php_memory_limit.png)

Code: Bạn không thể xem liên kết này. Đăng ký hoặc Đăng nhập
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted
Có 2 cách để xử lý vấn đề này.

1. Thiết lập bộ nhớ cho phép trong php.ini

Code: Bạn không thể xem liên kết này. Đăng ký hoặc Đăng nhập
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 128M

2. Không giới hạn bộ nhớ (Có thể làm tràn bộ nhớ máy chủ)

Code: Bạn không thể xem liên kết này. Đăng ký hoặc Đăng nhập
ini_set('memory_limit', '-1');

*Ý tưởng: Các bạn có thể viết code quản lý bộ nhớ trên script để quản lý chương trình hiệu quả hơn
Code: Bạn không thể xem liên kết này. Đăng ký hoặc Đăng nhập
private function convert($size)
{
    $unit=array('b','kb','mb','gb','tb','pb');
    return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
}

Code: Bạn không thể xem liên kết này. Đăng ký hoặc Đăng nhập
Output: '216.29 mb'

Tham khảo:
http://php.net/manual/en/ini.core.php#ini.memory-limit