【问题标题】:Can output be written without sending headers (For debugging)可以在不发送标头的情况下写入输出(用于调试)
【发布时间】:2014-02-22 23:57:18
【问题描述】:

我有一个 php 服务器脚本,它遍历会话 id,并检查它们的值,出于调试原因,我想输出文本,但我收到“标头已发送”错误(这是预期的)...所以我想知道是否有一种方法可以在不发送标题的情况下输出文本......这可能是我问过的最愚蠢的问题,但是嘿哈哈

【问题讨论】:

  • 发布一些代码,反正 ob_starts 会成功的:php.net/manual/es/function.ob-start.php
  • @Bugs error_log 不会阻止 Headers already sent 错误
  • @GuneyOzsan 我绝对不清楚那里。我的建议是将日志写入文件而不是将它们发送到浏览器,这样就不需要向浏览器发送任何调试文本,从而间接解决问题。

标签: php header output


【解决方案1】:

您可以使用ob_start 函数,它开始输出缓冲,这将导致header 函数不抛出错误消息。

您也可以使用文件 (file_put_contents)。

或者像 Collin Grady 说的:如果只是为了调试,请忽略警告,阅读您需要的信息并再次删除调试打印。

【讨论】:

  • file_put_contents 是一种享受:D ...我可能没有提到,我需要脚本继续运行(这是一个无限循环脚本)...
【解决方案2】:

您收到该错误是因为您稍后会在文件中发送标头。如果您只需要调试信息而不关心脚本的其余部分运行,只需在打印调试信息后exit;;这将在此处终止脚本,让您在以后的 header() 调用不会触发错误的情况下查看调试信息。

【讨论】:

    【解决方案3】:

    ob_start() 会有所帮助。

    您也可以检查此http://phpdebugbar.com/ 通常进行调试:-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多