首页 > php与数据库 > php array数组生成csv文件

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

转载随意,但请附上文章地址:-)

标签:iconv foreach fopen

相关文章

发表留言