发生致命错误时,重定向到另一个页面

时间:2019-12-12 12:19:24

标签: php php-7.2

我正在使用的应用程序收到以下致命错误。

  

严重错误:耗尽的134217728字节允许的内存大小(尝试   分配1245184字节)   C:\ xampp \ htdocs \ myproject \ vendor \ tecnickcom \ tcpdf \ tcpdf.php在线   7317

     

警告:unlink(./ Logo.jpg):中没有这样的文件或目录   C:\ xampp \ htdocs \ myproject \ vendor \ tecnickcom \ tcpdf \ tcpdf.php在线   7801

我想做的是在发生致命错误时重定向到另一页。以下是我正在玩但没有运气的代码。

set_time_limit(0);
use Spipu\Html2Pdf\Html2Pdf;

try {
    ...
    } catch (Throwable $e) {
        header('Location: http://localhost:8080/docs/generate.php'); exit;
}

这里的问题是,发生致命错误时不会发生重定向。

请告知。

1 个答案:

答案 0 :(得分:4)

您无法捕获PHP中的致命错误。但是有一种变通方法可能对您有用。

您可以使用register_shutdown_function注册关闭时的回调。

register_shutdown_function(function() {
    require_once dirname(__FILE__) . '/file.php'; // use ABSOLUTE path
    die();
});

您可能想知道使用header将用户重定向到另一个页面,而不是包括file.php并停止执行脚本。好吧,您会得到警告:

  

无法修改标头信息-标头已由...发送

由于无法在关闭回调中发送任何HTTP标头。