PHP读取CSV文件
写作时间:2022-05-17 作者:田辛
1 摘要
PHP有读取CSV文件内容并保存在数组中的函数“fgetcsv”。使用fgetcsv函数可以轻松读取CSV文件。
本文介绍了使用fgetcsv函数读取CSV文件的方法。
2 缘起
最近,田辛老师打算完成微信和支付宝交易流水的导入功能(这里是个人账单)。 目前微信和支付宝的导入机制都是通过CSV文件的,所以在这里做技术准备。
3 核心知识点
3.1 函数原型
#php/函数
fgetcsv
resource `$handle`,
int `$length` = 0,
string `$delimiter` = ',',
string `$enclosure` = '"',
string `$escape` = '\\'
): array
3.2 参数说明
handle
一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。
length
必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。
delimiter
设置字段分界符(只允许一个字符)。
enclosure
设置字段环绕符(只允许一个字符)。
escape
设置转义字符(只允许一个字符),默认是一个反斜杠。
3.3 返回值
返回包含读取字段的索引数组。
4 执行测试
要读取的CSV文件的内容如下。
[sample.csv]
No,名前,年齢,住所
1,山田一郎,30,東京都渋谷区
2,佐藤二郎,25,大阪府大阪市
3,鈴木三郎,22,神奈川県横浜市
4,高橋四郎,18,北海道札幌市
5,斉藤五郎,16,愛知県名古屋市
<?php
// 以只读方式打开文件
$fp = fopen('D:\S10-PHPStudy\99-test.nri.co.jp\sample.csv', 'r');
// 逐行输出文件内容
while($line = fgetcsv($fp)){
var_dump($line);
echo "<br />";
}
// 文件关闭
fclose($fp);
array(4) { [0]=> string(2) "No" [1]=> string(6) "名前" [2]=> string(6) "年齢" [3]=> string(8) "住所 " }
array(3) { [0]=> string(1) "1" [1]=> string(15) "山田一郎,30" [2]=> string(20) "東京都渋谷区 " }
array(4) { [0]=> string(1) "2" [1]=> string(12) "佐藤二郎" [2]=> string(2) "25" [3]=> string(20) "大阪府大阪市 " }
array(4) { [0]=> string(1) "3" [1]=> string(12) "鈴木三郎" [2]=> string(2) "22" [3]=> string(23) "神奈川県横浜市 " }
array(4) { [0]=> string(1) "4" [1]=> string(12) "高橋四郎" [2]=> string(2) "18" [3]=> string(20) "北海道札幌市 " }
array(4) { [0]=> string(1) "5" [1]=> string(12) "斉藤五郎" [2]=> string(2) "16" [3]=> string(21) "愛知県名古屋市" }