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

我有使用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代码并且绝对必须运行,则必须修改该代码才能解决问题。

正如Tim所说, 打印 , 回显和输出到伪文件 php://output完全一样的东西。

您也可以在closures文件之前使用关键字continuefclose($f); )。 这也很可爱。