在php中生成csv文件的方法很是简单,这里我来介绍一下自己用到的一个实例,把数组直接转换成csv文件输出,有需要了解的朋友可参考,代码如下:
- <?php
- $data = array(
- array( 'row_1_col_1', 'row_1_col_2', 'row_1_col_3' ),
- array( 'row_2_col_1', 'row_2_col_2', 'row_2_col_3' ),
- array( 'row_3_col_1', 'row_3_col_2', 'row_3_col_3' ),
- );
- $filename = "example";
-
- header("Content-type: text/csv");
- header("Content-Disposition: attachment; filename={$filename}.csv");
- header("Pragma: no-cache");
- header("Expires: 0");
-
- outputCSV($data);
-
- function outputCSV($data) {
- $outputBuffer = fopen("php://output", 'w');
- foreach($data as $val) {
- foreach ($val as $key => $val2) {
- $val[$key] = iconv('utf-8', 'gbk', $val2);
- }
- fputcsv($outputBuffer, $val);
- }
- fclose($outputBuffer);
- }
-
- ?>
例2,看一个读取csv文件的实例,读取cvs,使用fgetcsv()文件指针中读入一行并解析 CSV 字段,比如说我要读取如下csv文件,代码如下:
- <?php
-
- $row = 1;
- $handle = fopen("file.csv","r");
-
- while ($data = fgetcsv($handle, 1000, ",")) {
- $num = count($data);
- echo "<p> $num fields in line $row: <br>n";
- $row++;
- for ($c=0; $c < $num; $c++) {
-
- $data[$c]=iconv("gbk", "utf-8//IGNORE",$data[$c]);
- echo $data[$c] . "<br>n";
- }
- }
- fclose($handle);
- ?>
|