Php 显示错误不起作用
我试图隐藏错误,但似乎我做错了什么。 在我的主机配置中,“显示错误”设置为“关闭”,并且我没有.htaccess文件。我试着写下面的剧本Php 显示错误不起作用,php,Php,我试图隐藏错误,但似乎我做错了什么。 在我的主机配置中,“显示错误”设置为“关闭”,并且我没有.htaccess文件。我试着写下面的剧本 <?php echo ord(ini_get("display_errors")) . " "; die("error"); ?> 因此,display_errors(显示错误)设置为off(关闭),但die功能仍在屏幕上显示错误。如何避免这种情况?通过执行DIERROR,您正在命令代码输出字符串错误并停止代码 您看到的错误消息并
<?php
echo ord(ini_get("display_errors")) . " ";
die("error");
?>
因此,display_errors(显示错误)设置为off(关闭),但die功能仍在屏幕上显示错误。如何避免这种情况?通过执行DIERROR,您正在命令代码输出字符串错误并停止代码
您看到的错误消息并不意味着存在错误,它只是另一个字符串
die是一个常用于处理错误的功能,但在禁用“显示错误”时,它不会被禁用。无论它打算做什么,它都将继续发挥作用
如何避免这种情况
不要使用模具来处理错误
改为使用trigger_error,它将遵循您预期的行为有一个选项可以将error显示到stderr而不是stdout,这样您就不会在网页上看到它们,而只能在日志中看到它们 我找到了error\u log函数。现在我可以使用
function quit($error)
{
echo "Request failed";
error_log($error);
die();
}
它不会停止脚本执行触发E_USER_错误会停止脚本执行。在正常情况下,它还会在Apache的错误日志中放入一条日志消息。@Poma这就是您应该使用它的原因!因为终止脚本执行是愚蠢的。至少你必须先发送500个错误和一些用户友好的HTML。我不需要这样做,因为我正在为我的密钥管理服务器编写脚本,只有我的程序会向该脚本发出请求。我认为它应该将文本输出到stderr,而不是stdout@Poma,则不提stderr或stdout。die只是exit.trigger\u错误的别名,但根据错误处理设置,它与exit.trigger\u错误完全相同。
function quit($error)
{
echo "Request failed";
error_log($error);
die();
}