$data['fname'] = date('YmdHis').'.csv';//文件名 if (strpos($_SERVER['HTTP_USER_AGENT'], "MSIE")) { // 解决IE浏览器输出中文文件名乱码的bug $data['fname'] = urlencode($data['fname']); $data['fname'] = str_replace('+', '%20', $data['fname']); } header("Content-type:text/csv;"); header("Content-Disposition:attachment;filename=" . $data['fname']); header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); header('Expires:0'); header('Pragma:public'); $csv_data = '序号,姓名,手机号,电子邮箱,是否合法用户,填写时间'."\r\n";//csv中数据列以英文逗号分隔,列数据项可以用双引号括起来,如果数据中带有双引号,那么可以用双引号进行转义。换行符用\r\n,但必须在php中用双引号括起来。 $i=0; foreach($result as $item){ $i++; $csv_data .= $i.','; $csv_data .= '"'.str_replace('"','""',stripslashes($item['FTrueName'])).'",'; $csv_data .= '"'.str_replace('"','""',stripslashes($item['FMobile'])).'",'; $csv_data .= '"'.str_replace('"','""',stripslashes($item['FEmail'])).'",'; $csv_data .= '"'.($item['FMark']?'是':'否').'",'; $csv_data .= '"'.str_replace('"','""',stripslashes($item['FTime'])).'"'; $csv_data .= "\r\n"; } $csv_data = mb_convert_encoding($csv_data, "cp936", "UTF-8"); echo $csv_data;
xls格式:
$data['fname'] = date('YmdHis').'.xls';//文件名 header("Content-type:application/octet-stream"); header("Accept-Ranges:bytes"); header("Content-Type: application/vnd.ms-execl"); header("Content-Disposition: attachment; filename={$data['fname']}"); header("Pragma: no-cache"); header("Expires: 0"); echo '<head><meta http-equiv="Content-Type" charset=utf-8" /></head>';//不加这一句,有时候会输出乱码 echo ' <table border="0" cellpadding="0" cellspacing="1" > <tr> <td>序号</td> <td>姓名</td> <td>手机号</td> <td>电子邮箱</td> <td>是否合法用户</td> <td>填写时间</td> </tr>'; $i=0; foreach($result as $item){ $i++; echo ' <tr> <td>'.($i).'</td> <td>'.$item['FTrueName'].'</td> <td>'.$item['FMobile'].'</td> <td>'.$item['FEmail'].'</td> <td>'.($item['FMark']?'是':'否').'</td> <td>'.$item['FTime'].'</td> </tr> '; } echo '</table>';