【问题标题】:codeigniter export to excel works well on localhost, errors on servercodeigniter 导出到 excel 在本地主机上运行良好,服务器上出现错误
【发布时间】:2012-02-25 20:36:39
【问题描述】:

这是我的 export_to_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 和服务器上得到不同的结果。当我在 localhost 中运行代码时,它会毫无问题地输出正确的结果,但是当我在服务器上运行代码时,它会给出与 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 />

有什么解决办法吗?

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

【问题讨论】:

  • 尝试在echo "$headers\n$data";之后添加exit;
  • 感谢您提供此解决方案。但最好找到更好的解决方案。如果我没有找到,那将是唯一的一个。 +1。
  • 我什至在echo "$headers\n$data"; 之后添加了return TRUE;,但仍然没有运气。这个想法是基于你的评论。还是谢谢。
  • 为什么这是一个糟糕的解决方案?这是确保输出停止在所需点的常用方法 - 为什么不适用于此?我在自己的 CI 项目中使用相同的方法。
  • 好的,所以请将它作为回复发布,以便我也可以接受。

标签: excel codeigniter export export-to-excel ob-start


【解决方案1】:

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

可以通过将exit; 放在echo "$headers\n$data"; 之后来完成

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多