【问题标题】:How can I tell PHP to dump exceptions as raw text instead of HTML?如何告诉 PHP 将异常转储为原始文本而不是 HTML?
【发布时间】:2012-01-20 12:09:31
【问题描述】:

当我在 PHP 中开发我的 REST API 时,我使用的是 application/json 输出,所以当我在浏览器中测试时遇到错误时,它们看起来像这样:

<b>Fatal error</b>: Uncaught exception 'Exception' with message 'PDO caught an error:
array(3) {
  [0]=&gt;
  string(5) &quot;42000&quot;
  [1]=&gt;
  int(1065)
  [2]=&gt;
  string(15) &quot;Query was empty&quot;
}

当我得到大量堆栈跟踪和其他东西时,情况会变得更糟。那么是否可以设置一个标志告诉 PHP 我希望我的错误未转义并以原始文本显示?

【问题讨论】:

    标签: php error-handling


    【解决方案1】:

    在您的 php.ini 中,您可以设置三种不同的设置来更改 HTML 错误的显示方式。

    我在我的开发环境中使用以下内容:

    html_errors = On
    error_prepend_string = "<pre>"
    error_append_string = "</pre>"
    

    【讨论】:

    【解决方案2】:

    这是一个名为html_errorsphp.ini 设置。

    【讨论】:

      【解决方案3】:

      我可能找不到一些配置选项来执行此操作 - 我怀疑有,因为 HTML 不存在于命令行中。

      一个肮脏的工作是通过html_entity_decode(strip_tags($str))传递字符串。

      编辑 正如 Andy Pieters 所指出的(他显然比我更擅长阅读文档),有一个名为 html_errors 的配置选项可以控制这一点。我会把这个答案留在这里,以防你因为某种原因不能修改它,但你应该接受他的回答。

      【讨论】:

        猜你喜欢
        • 2020-03-19
        • 1970-01-01
        • 1970-01-01
        • 2019-01-16
        • 2010-10-02
        • 2011-06-22
        • 1970-01-01
        • 2019-01-31
        • 1970-01-01
        相关资源
        最近更新 更多