【问题标题】:Content-type: text/csv output html into the csv filecontent-type: text/csv 输出html到csv文件
【发布时间】:2017-01-25 16:38:19
【问题描述】:

我似乎无法仅将特定信息输出到 csv 或任何文件中。以下内容,例如,从页面输出 html,而不是我试图发送到申请人.csv 的数据:

($a_Lines 数组已被填充):

header('Content-type: text/csv');
header('Content-Disposition: attachment; filename="Applicants.csv"');
header('Pragma: no-cache');
header('Expires: 0');

$file = fopen('php://output', 'w');

foreach ( $a_Lines as $row ) {
    fputcsv($file, $row);
}
fclose($file);

【问题讨论】:

    标签: php html csv fputcsv


    【解决方案1】:

    确保在表达式中

    fputcsv($file, $row);
    

    $row 总是数组。如果要从 $a_Lines csv 文件创建,则不需要 foreach 循环(当然,我假设 $a_Lines 是数组)。如果您想从 $a_Lines 数组中选择数据,则运行 $a_Lines,创建新数组或转换现有数组,然后在循环后将准备好的数组添加到 fputcsv 函数中。

    【讨论】:

    • 谢谢,院长。是的,我用 var_dump() 确认 $row 是一个数组。当天早些时候,它是一个字符串,它产生了与您的 cmets 相关的错误。但是 $row 现在是一个数组,对于每次迭代。
    • 我在想问题可能是,这需要是一个单独的 html 页面。目前,它是一个条件的一部分,一个更大的页面。但也许我需要将 CSV 按钮(在主页中)分配给另一个页面的 url。听起来对吗?
    • 页面上只能有一个输出。所以如果你之前有一些东西作为输出,那么你必须改变它。否则,这不是问题。您还可以做一件事 - 尝试删除文件名周围的双引号。
    • 好的,我将把它分开放在单独的页面上。并取出双引号。 – 谢谢。
    猜你喜欢
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多