0
在线手册:中文 英文

写入CSV文件

<?php 
// 最简单.
$fp fopen('./file.csv''w');
fputcsv($fp,array('aaa','bbb','cccc'));
fputcsv($fp,array('mmm','yyy','haha'));   //fputcsv()可以用数组循环的方式进行实现
fclose($fp);

读取CSV文件

<?php 
$row  
=  ;
if (( 
$handle  =  fopen "test.csv" ,  "r" )) !==  FALSE ) {
    while (( 
$data  =  fgetcsv $handle ,  1000 ,  "," )) !==  FALSE ) {
         
$num  =  count $data );
        echo  
"<p>  $num  fields in line  $row : <br /></p>\n" ;
         
$row ++;
        for ( 
$c ;  $c  <  $num ;  $c ++) {
            echo  
$data $c ] .  "<br />\n" ;
        }
    }
     
fclose $handle );
}

浏览器下载

<?php 
header
('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="test.csv"');
header('Cache-Control: max-age=0');

// 表示直接输出到浏览器,不需要echo
readfile('./test.csv');

编码问题要注意

<?php 
    $head 
= array ('订单号','','订单名称','','业务ID','','渠道ID','','渠道类型','','产品线名称','','原始订单号','','订单金额',
        
'','From值','','订单时间','','收款合同号','','渠道名称','','付款合同号','','供应商名称','','运营平台','','产品类型',
        
'','记账时间','','渠道成本比例','','渠道成本','','应收账款','','结算比例','','应付结算','','是否已回款','','是否已提批次',
        
'','备注');
    foreach ( 
$head as $i => $v ) {
      
// CSV的Excel支持GBK编码,一定要转换,否则乱码
      
$head [$i] = iconv 'utf-8''gbk'$v );
    }
    
// 将数据通过fputcsv写到文件句柄
    
fputcsv $fp$head );
0
在线手册:中文 英文