php array数组生成csv文件
在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); // CSV的Excel支持GBK编码,一定要转换,否则乱码 } fputcsv($outputBuffer, $val); } fclose($outputBuffer); } ?>
例2
看一个读取csv文件的实例
读取cvs,使用fgetcsv()文件指针中读入一行并解析 CSV 字段
比如说我要读取如下csv文件
<?php /** by www.phprm.com */ $row = 1; $handle = fopen("file.csv", "r"); //fgetcsv() 解析读入的行并找出 CSV格式的字段然后返回一个包含这些字段的数组。 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); ?>
本文地址:http://www.phprm.com/database/53961.html
转载随意,但请附上文章地址:-)