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

Rad*_*ary 3 html php csv excel 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);
Run Code Online (Sandbox Code Playgroud)

Bri*_*and 6

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

正如蒂姆所提到的,打印,回显和输出到伪文件 php://output完全相同.