PHP CSV文件操作

时间:2018-11-15 15:09:25  来源:igfitidea点击:

在本教程中,我们将学习如何在PHP中处理CSV文件,包括创建和读取CSV文件。

CSV是comma-separated values的缩写。 表示逗号分隔的值。CSV文件是一个文本文件,它以逗号分隔值的形式存储表格数据。CSV文件每行存储一条记录。它可能有一个标题。

以下是CSV示例文件的内容:

当你在文本编辑器中查看CSV文件时,它看起来像以下截图:

逗号(,)通常用于分隔CSV文件中的字段。如果字段值包含逗号(,),则将其放在双引号内,如"阿里, Inc."。不仅逗号(,),其他字符,如分号(;)也可以用来分隔字段。

即使CSV文件是一个纯文本文件,它的扩展名也是CSV,而不是txt。

PHP提供了一些有用的函数来帮助你创建和读取CSV文件。

PHP创建CSV文件

要将一行格式化为CSV格式并将其写到文件指针,可以使用fputcsv()函数。下面的例子创建了一个名为stock.csv的CSV文件:

<?php 
 
$data = array(
    array('排名','公司','市值(单位:亿美元)'),
    array('1','阿里巴巴','4594.26'),
    array('2','腾讯','3992.62'),
    array('3','美团','728.56'),
    array('4','拼多多','482.26'),
    array('5','京东','459.4'),
    array('6','网易','370.5'),
);
 
// 打开csv文件进行写入
$fh = fopen('stock.csv','w');
 
foreach ($data as $rec) {
    fputcsv($fh, $rec);
}
 
fclose($fh);

PHP读取CSV文件

要读取CSV文件,可以使用fgetcsv()函数。fgetcsv()函数从文件指针的位置读取一行CSV数据,并将其放入数组中。CSV记录中的每个字段都作为元素放在数组中。一旦数组中有了数据,就很容易进行操作了。

如果在读取文件或文件指针到达文件结尾时发生错误,函数fgetcsv()将返回false。

下面的示例向您展示了如何读取我们之前创建的stock.csv文件。

<?php
$csv_file = './stock.csv';
 
$fh = fopen($csv_file,'r') 
 or die('打开文件时出错' . $csv_file );
 
$data = array();
while($rec = fgetcsv($fh)){
 $data[] = $rec;
}
 
fclose($fh);
 
var_dump($data);