笨导出到Excel工作以及在本地主机上,错误的服务器

问题描述:

这是我export_to_excel帮手代码:笨导出到Excel工作以及在本地主机上,错误的服务器

function export_to_excel($query, $filename='exceloutput') 
{ 
    $headers = ''; // just creating the var for field headers to append to below 
    $data = ''; // just creating the var for field data to append to below 

    $obj =& get_instance(); 

    $fields = $query->list_fields(); 

    if ($query->num_rows() == 0) { 
     echo '<p>The table appears to have no data.</p>'; 
    } else { 
     foreach ($fields as $field) { 
      $headers .= $field . "\t"; 
     } 

     foreach ($query->result() as $row) { 
      $line = ''; 
      foreach($row as $value) {            
       if ((!isset($value)) OR ($value == "")) { 
        $value = "\t"; 
       } else { 
        $value = str_replace('"', '""', $value); 
        $value = '"' . $value . '"' . "\t"; 
       } 
       $line .= $value; 
      } 
      $data .= trim($line)."\n"; 
     } 

     $data = str_replace("\r","",$data); 

     header("Content-type: application/x-msexcel; charset=utf-8"); 
     header("Content-Disposition: attachment; filename=$filename.xls"); 
     echo "$headers\n$data"; 
    } 
} 

我得到了本地主机和服务器不同的结果。当我在localhost中运行代码时,它输出正确的结果没有问题,但是当我在服务器上运行代码时,它会得到与本地主机相同的结果,但它增加了两行(excel行),其中包含以下错误:

<br /> 
<b>Fatal error</b>: ob_start() 
[&lt a href='ref.outcontrol'&gt ref.outcontrol&lt/a&gt]: 
Cannot use output buffering in output buffering display handlers in 
<b>/home/username/public_html/Codeigniter_website/system/core/Exceptions.php</b> 
on line <b>181</b><br /> 

任何解决方案?

这几乎是一个大项目,这是我在本地和服务器之间看到的唯一区别。

+1

尝试增加'出口完成;''后回声 “$头\ n $的数据”;'? – Repox 2012-02-25 20:57:08

+0

谢谢你的解决方案。但最好找到更好的解决方案。如果我没有找到,它将是唯一的一个。 +1。 – 2012-02-26 05:22:26

+0

我甚至在'echo'$ headers \ n $ data“;”后加了'return TRUE;',但仍然没有运气。这个想法是基于你的评论。不管怎么说,还是要谢谢你。 – 2012-02-26 05:32:07

解决方案是确保输出和解析在所需输出后停止。

的,可以通过把exit;echo "$headers\n$data";