【PHP】PHP读取CSV文件

本文介绍了如何使用PHP的fgetcsv函数读取CSV文件,包括函数原型、参数说明及执行测试案例。通过示例代码展示了如何逐行读取CSV内容并将其保存在数组中,为实现微信和支付宝交易流水导入功能做技术准备。
摘要由CSDN通过智能技术生成

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) "愛知県名古屋市" }

5 流程总结

fopen打开CSV文件
fgetcsv函数从第一行开始遍历处理
CSV文件关闭
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

田辛 | 田豆芽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值