Cara Menangani Ralat \'Saiz Memori yang Dibenarkan Habis\' dalam PHP dengan Gangguan Minimum

Patricia Arquette
Lepaskan: 2024-10-24 11:48:29
asal
410 orang telah melayarinya

How to Handle 'Allowed Memory Size Exhausted' Errors in PHP with Minimal Disruption

Mengendalikan Ralat 'Allowed Memory Size Exhausted' dalam PHP

Apabila bekerja dengan skrip yang mengembalikan respons JSON, menghadapi ralat 'Allowed Memory Size Exhausted' boleh menjadi kebimbangan . Untuk mengelakkan peningkatan had memori, anda mungkin ingin memaklumkan kepada pengguna bahawa permintaan mereka melebihi ambang memori.

Menangkap Ralat Maut

Dalam PHP, anda tidak boleh menangkap ralat maut secara langsung seperti keletihan saiz memori. Walau bagaimanapun, anda boleh menggunakan register_shutdown_function untuk mendaftarkan panggilan balik yang menyemak error_get_last().

<code class="php">register_shutdown_function(function() {
    $error = error_get_last();
    if ($error) {
        echo 'An error occurred: ' . $error['message'];
    }
});</code>
Salin selepas log masuk

Mengurus Output Ralat

Untuk mengelakkan ralat maut daripada ranap skrip, anda perlu mengendalikan output yang dihasilkan oleh kod yang menyinggung perasaan. Anda boleh menggunakan operator @ (tidak disyorkan) atau tetapkan ini_set('display_errors', false).

Contoh

<code class="php">ini_set('display_errors', false);
error_reporting(-1);

set_error_handler(function($code, $string, $file, $line){
    throw new ErrorException($string, null, $code, $file, $line);
});

register_shutdown_function(function() {
    $error = error_get_last();
    if ($error) {
        echo 'Memory limit exhausted. Please try reissuing the request with different parameters.';
    }
});</code>
Salin selepas log masuk

Setelah menjalankan skrip ini dengan penggunaan memori yang berlebihan, ia akan mengeluarkan mesej ralat yang sesuai, memberitahu pengguna untuk membuat pelarasan untuk mengurangkan penggunaan memori.

Pertimbangan

Pastikan error_reporting() tinggi untuk memastikan ralat lain masih kelihatan. Untuk ralat bukan maut, pertimbangkan untuk menggunakan set_error_handler() dan ErrorException untuk pengendalian ralat.

Atas ialah kandungan terperinci Cara Menangani Ralat \'Saiz Memori yang Dibenarkan Habis\' dalam PHP dengan Gangguan Minimum. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan