我正在使用的应用程序收到以下致命错误。
严重错误:耗尽的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;
}
这里的问题是,发生致命错误时不会发生重定向。
请告知。
答案 0 :(得分:4)
您无法捕获PHP中的致命错误。但是有一种变通方法可能对您有用。
您可以使用register_shutdown_function
注册关闭时的回调。
register_shutdown_function(function() {
require_once dirname(__FILE__) . '/file.php'; // use ABSOLUTE path
die();
});
您可能想知道使用header
将用户重定向到另一个页面,而不是包括file.php
并停止执行脚本。好吧,您会得到警告:
无法修改标头信息-标头已由...发送
由于无法在关闭回调中发送任何HTTP标头。