Saturday, November 3, 2018

PHP- "headers already sent" error depending on output length?




I have a script which outputs mysql cell data. The "content" cell contains text output, which is of varied length.



When the contents of the "content" cell are small (lets say, a few lines of text), everything works fine.
However, when the output reaches several paragraphs or more, I get the 'headers already sent' error.



Does it depend on the output length? Where can I read more about it? The answers I've found on SO mention nothing of such output length-dependency.



 44:   echo "
45:

".$article['content']."



46: ";


If the size of the 'content' output is large, the script produces the following error:




PHP Warning: Cannot modify header information - headers already sent
by (output started at /home/mantas/htdocs/asm/article.php:46) in
/home/mantas/htdocs/asm/include/comments_class.php on line 56




Answer



PHP will buffer output if you want it to. You can control this programmatically with ob_start(), etc. However, there is a further option to set output buffering on in php.ini.



Setting output_buffering=on enables it, while setting output_buffering=4096 will set a limit to the buffer size. phpinfo() should tell you if this is enabled, and what the buffer size is.



The PHP reference is here


No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...