我没有输出缓冲和display_errors是on和error_reporting是E_ALL,但在我的服务器上php警告不显示。
我期待的警告是:
Cannot modify header information - headers already sent by " when it is expected.
没有显示错误的服务器是Mac OS X php 5.4.24。显示美分的服务器是php 5.3.27。都有E_ALL错误报告
应该在两个服务器上引起错误的代码:
echo json_encode(array('success'=>true,'message'=>$success_message,'person_id'=>$employee_id,'redirect_code'=>$redirect_code));
$this->session->set_flashdata('manage_success_message', $success_message);
我的问题是:
为什么我没有收到Mac OS X机器的警告?但是我收到了一个警告。php版本略有不同,但我不认为这种行为会改变。
我在php.ini中修改了以下内容,并能够在我的mac服务器上发生问题:
来自:output_buffering = 4096
:
output_buffering = Off
似乎就是这个问题
检查<?php
开头标记前是否有空格、回车或制表符。
在两台机器上,试着用
确认你关于错误报告设置的理论 echo ini_get ( 'display_errors' );
如果您的Mac和CentOS机器上的环境在配置上不相同,则有许多合理的原因导致差异…从错误抑制到操作系统处理EOL字符的方式