PHP输出文件头错误
本地 nginx 1.09 测试一切正常,上传到服务器 nginx 1.12, 在选择文本输出时就报错
完整代码:
- PHP code
<?php @$id=$_GET['id']?$_GET['id']:'a'; @$txt=$_GET['txt']?$_GET['txt']:''; $trees=array(); $trees["a"]="苹果"; $trees["b"]="香蕉"; $trees[3]="樱桃";if($txt){ header('Content-Disposition: attachment; filename="'.$trees[$id].'.txt"'); header('Content-type: text/'.($txt?'plain':'html').'; charset=utf-8'); echo '您选择种了:'.$trees[$id].'树'; die();}else{ echo '<h3>您选择种了:'.$trees[$id].'树</h3>';?><form action="" method="get">选择您想种的树:<select name="id"><?php foreach($trees as $key=>$tree){ echo '<option value="'.$key.'">'.$tree.'</option>'; } ?></select>树<br>输出格式:<select name="txt"><option value="">默认</option><option value="1">文本</option></select><input type="submit" value="提交"></form><?php}?>演示地址: http://guilyn.host.org/cn/demo/full.php
[解决办法]
应该是BOM头的原因。 可以修改下php.ini output_buffering=On,或者去掉它
[解决办法]
保存为utf8的时候就需要注意这个头的事情 ...
[解决办法]
int_set('output_buffering=On');不知道写错了没?