- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我的 PHP 脚本(PHP 5.6、Apache 2.2)间歇性地遇到这个问题:
Warning: Cannot modify header information - headers already sent in /path/to/index.php on line 55
这个警告没有我在其他问题中看到的“发送者”部分,所以我在违规的 header()
和 setcookie 之前添加了这段代码()
调用:
if (headers_sent($filename, $linenum)){
echo("Output buffer: #" . ob_get_contents() . "#");
echo "Headers already sent in $filename on line $linenum: ";
print_r(headers_list());
}
这是问题发生时我得到的输出:
Output buffer: ##
Headers already sent in on line 0:
Array (
[0] => X-Powered-By: PHP/5.6.23
[1] => Content-type: text/html; charset=UTF-8
)
(旁注:我在 php.ini 中将 output_buffering 设置为 4096 字节,所以这两个 header 中的 63 个字符不应该被缓冲并等待更多字符,而不是过早发送吗?)
这个问题是在我第一次启动包含网络服务器的 Docker 容器时出现的。之后,当我调用 header()
和 setcookie()
使用户登录或重定向到登录页面。
我已经阅读并重读了 this answer对于一般的“ header 已发送”错误,并且我已尽我所能排除了这些可能的原因:
setcookie()
或 header()< 之前,HTML 会阻止或调用 print
、echo
等
auto_prepend_file
php.ini 设置gzip
流编码 - 安装了 zlib,但 zlib.output_compression
已关闭extension=
php.ini 设置那个答案提到了
It's typically a PHP extension or php.ini setting if no error source is concretized.
所以,我现在正在查看我的扩展...get_loaded_extensions
给我一个包含这些条目的 51 长数组:
Core, date, ereg, libxml, openssl,
pcre, zlib, filter, hash, Reflection,
SPL, session, standard, apache2handler, bz2,
calendar, ctype, curl, dom, exif,
fileinfo, ftp, gd, gettext, iconv,
mysqlnd, PDO, Phar, posix, shmop,
SimpleXML, snmp, soap, sockets, sqlite3,
sysvmsg, sysvsem, sysvshm, tokenizer, xml,
xmlwriter, xsl, mysql, mysqli, pdo_mysql,
pdo_sqlite, wddx, xmlreader, json, zip, mhash
我没有使用所有这些,所以我计划检查并删除未使用的,希望其中一个是导致问题的原因。
最坏的情况,我会尝试增加我的 output_buffering
值或使用 ob_start()
和 ob_end_flush()
开始和我的文件结束。我不知道为什么当我当前的 output_buffering
值为 4096 时这会修复它,而且我知道此解决方法有其自身的问题。
我在这里遗漏了什么——我需要检查其他可能的原因吗?我应该尝试不同的 PHP 版本,还是在没有扩展的干净 PHP 安装上运行我的代码子集?
编辑:添加了 ob_get_contents()
调用和输出,以及关于能够通过启动新的 Docker 容器来一致地重现它的信息。删除了有关我的 error_reporting
值的信息;更改它只会发现 always_populate_raw_post_data
弃用通知,修复它对此处描述的问题没有影响。
最佳答案
我过去曾看到过由于行结束格式引起的问题。您要将文件从一个操作系统环境移动到另一个操作系统环境吗?
有时隐藏的回车符 (/r) 或其他特殊的空白字符会导致这种情况,但在文件中不可见。
关于PHP 5.6 : headers_sent intermittently returns true, 空文件名和第 0 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42827556/
我们有一组 5 个在线拍卖系统,运行在 Windows Azure 和 SQL Azure 上。每个系统由一个 Web Worker 和一个或多个 Web 角色组成。每个系统都使用 ASP.NET M
这对我来说是一个难题。下面显示了当我尝试进行亚马逊搜索时抛出异常的代码部分: AWSECommerceServiceLocator locator = new AWSECommerceServiceL
我有一个使用核心数据的项目,这个错误会间歇性地发生。我知道实体在那里,因为大多数时候,应用程序打开并显示 entityName 的内容。1. 这是在应用程序委托(delegate)中发生的,而不是被
我正在后台线程中阅读地址簿,我正在使用以下堆栈跟踪获取一些崩溃报告。 0 libsystem_kernel.dylib __pthread_kill + 8 1 libsystem
我正在调用 AVPlayer seekToTime:toleranceBefore:toleranceAfter 间歇性挂起,没有完成(甚至没有调用完成 block )。我查看了其他 stackove
我正在编写一个 Azure 自动化脚本,我需要检索访问 token 来调用 AAD Graph API。我想使用 ADAL 来执行此操作,因此我压缩了 Microsoft.IdentityModel.
我正在使用 Facebook 连接。超过 50% 的注册获得了“Bad Signed JSON 签名”。错误。是什么导致了这个问题,它是如何解决的? 这是代码: function parse_sign
我正在发送 GData 查询以使用 Java GData 包为 Instructables.com 的用户呈现流量图表。但是,有时会抛出此异常: [Line 1, Column 0] Invalid
我正在开发我认为会是一个简单的Nginx反向代理的东西。它的目标是将所有请求转发/代理到静态资产所在的另一个负载平衡器(ALB)。预计代理上的流量很小,目前它只接收测试流量(一次一个用户)。。详细信息
通常,每天使用Google OpenId可以工作数千次,然后间歇性地出错并超时约一个小时(某些请求可以验证,但不是全部都可以)。重复验证最终将起作用。 错误消息是: Event code: 20000
我们的flex应用通过TCP套接字连接与原始服务器进行通信。这需要有关服务器的许可,因此我们在主机上设置了socket policy server(源代码在pastie.org/791060上)。 这
我在 Heroku 上有一个 ZombieJS Node 服务器,用于从互联网上抓取数据。服务器代码是从客户端的 for 循环调用的。循环的每次迭代都会进行一次服务器调用,从而产生 zombie 抓取
我的客户项目和计费数据库有一个显示项目的表单。 在加载数据库和所述表单时,我有 295 条记录(根据屏幕底部的记录框)。 不应用过滤器。只有记录 1-198 或 199 在表单中实际可见。记录在表和表
几周以来,我们的 ASP.Net Web 应用程序遇到了 W3WP 崩溃。这些是在我们的网络服务器更新后开始的。我们的应用程序没有改变,多年来一直稳定。 我们的情况好像很像this earlier q
弄清楚如何假脱机到文件已经很容易了。我希望在写入每个命令后有一个选项可以写入文本文件。我不确定如何向团队中的其他人传达长脚本的状态。我们寻求的解决方案是将日志文件写入网络驱动器,当脚本执行时,它们将能
我有一个运行多个行的 cron,删除“坏”的行(根据我的标准)。我只是想知道优化脚本的最佳方法是什么。我可以执行以下操作之一: 让同一个 cron 在发现“坏”行后立即删除它们。 让相同的 cron
这很奇怪,我不确定真正的罪魁祸首是谁。 我正在 FreeBSD (6.2) 上编写一些脚本?它广泛使用了以下 ***bash***ism: do_something );与一个使用 sysread 的
我有一个非常简单的 nodeJS 应用程序。由于某种原因,服务器的响应时间差异很大。 这是我的 app.js: var express = require('express'); var http =
我有一个已经运行 4 年没有问题的 Google Apps 脚本。但是,自从 3 周以来,我遇到了这个问题:脚本运行了很长时间并且失败了。这种情况每 10 次运行中就有 3 次发生。错误消息是“服务电
基本上,我正在调用一个 REST 服务,该服务将一个小数据包从我的系统传输到另一个系统。一开始这工作正常,但一段时间后,如果我将其保留一周并尝试调用相同的服务,我会收到以下错误 IOException
我是一名优秀的程序员,十分优秀!