php - fputcsv 将 HTML 代码插入到 csv 文件中

标签 php html excel csv fputcsv

我在使用 fputcsv 写入 csv 文件时遇到问题。它将页面 html 也放入 csv 文件中。我的代码有什么问题?

//Excel header
header("Content-Disposition: attachment; filename=\"Delivery_Reports.csv\";" );
header("Content-type: application/vnd.ms-excel");
$out = fopen("php://output", 'w');
$flag = false;
// $result = mysql_query("SELECT * FROM senderids ") or die('Query failed!');
//$sel="SELECT number as MobileNumber ,snum as Sender , msg as Subject ,crdate as Date ,status FROM savemsg WHERE userID='".$_SESSION['id']."' ".$str." ORDER BY sn DESC ";
$result = mysql_query("SELECT `count`, `dnd`, `credit`, `sender_id`, `to`, `message`, `status` FROM `reports` WHERE `unq_id` = '$dlr_id'");
while(false !== ($row = mysql_fetch_assoc($result))){
    if(!$flag){
        $list = array(
            "Total"=>"Total",
            "DND"=>"DND",
            "Credits"=>"Credits",
            "From"=>"From",
            "To"=>"To",
            "Message"=>"Message",
            "Status"=>"Status"
        );
        // display field/column names as first row
        fputcsv($out, array_keys($list), ',', '"');
        $flag = true;
    }
    // array_walk($row, 'cleanData');
    fputcsv($out, array_values($row), ',', '"');
}
fclose($out);

最佳答案

您不能保证在一段代码中不会输出任何其他内容。如果此代码段之前的代码使用输出缓冲,您可以使用 ob_end_clean 丢弃 HTML .如果此代码段之后的代码导致问题,您可以简单地调用 die以防止它运行。但是,如果此代码段之前的代码是直接向浏览器输出 HTML,或者输出 HTML 之后的代码必须运行,那么您将不得不修改该代码以解决您的问题。

正如蒂姆所说,print , echo并输出到 pseudo-file php://output 做同样的事情。

关于php - fputcsv 将 HTML 代码插入到 csv 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11995117/

相关文章:

javascript - 无法使用 JQuery 同时添加两个超链接

excel - 尝试重命名工作表时星号不起作用

python - 使用 xlrd、xlwt 和 xlutils 编辑现有 Excel 工作簿

Excel公式: Count cells where value is date

php - 针对 10k 记录的外键插入

php - 如何在单个查询中获取帖子标题、描述和图像

javascript - Laravel BroadcastAs 中的 Pusher 传递参数

html - 如何在透明 `<label>`后面对齐 `&lt;input&gt;`

php - Guzzle 6 - Promises - 捕获异常

javascript - Paperjs : Canvas height and width gets changed on window resize. 如何防止更改?