Zarezerwowanie pamięci pod wyświetlenie Fatal Errora w PHP

Dodany: 22 listopada, 2014 | Kategoria: PHP

Jeśli w PHP zabraknie pamięci, to wyświetli się stosowny komunikat na ten temat i skrypt wysypie się.
Można jednak zarezerwować sobie trochę pamięci, aby wyświetlić własny komunikat o błędzie:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php

error_reporting(0);

ini_set('memory_limit', '1M');

$memory = str_repeat('x', 262144);
   
register_shutdown_function('handleFatalError');
   
function handleFatalError() {
    global $memory;
    unset($memory);
    $error = error_get_last();
    echo $error['message'] . PHP_EOL . $error['type'] . PHP_EOL . $error['type'] . PHP_EOL . $error['file'] . PHP_EOL . $error['line'] . PHP_EOL;
}

// uncomment one of them:

// this_function_doesnt_exists();

// or

$memory_error = str_repeat('x', 500000);

// zaczerpnięte z kodu Yii 2

Brak komentarzy »