PHP 如何读取 CSV

平时我们整理手机通讯录、导出电商订单或者统计小区快递量,常会用到一种叫CSV的表格文件——它不像Excel需要专门软件,用记事本就能打开,还轻便好分享,是很多小数据整理的“轻量选手”。但如果要处理成百上千条数据,手动复制粘贴肯定不现实,这时候用PHP就能快速搞定,不用装复杂工具,几行代码就能批量读取。

先搞懂CSV的“小秘密”

很多人第一次见CSV文件,会疑惑它和Excel表格有啥区别?其实Excel是把数据存在单元格里,而CSV是用逗号(或竖线、制表符)分隔每个数据项,用换行代表新的一行数据,比如一行“张三,135XXXX1234,北京朝阳区”,就对应了姓名、电话、地址三个信息。

PHP 如何读取 CSV

就像超市的价签条,每一行是一个商品信息,逗号是价签上的“分隔线”,把商品名称、价格、库存分开——PHP处理CSV,本质就是顺着这些“分隔线”和“换行符”,把零散的信息拆出来。

用PHP原生函数,不用额外装工具

很多人怕学新代码,其实PHP自带了专门处理CSV的函数,不用装插件,新手也能上手,核心是两个常用函数:一个是打开文件的,一个是逐行读取解析的,就像用“小勺子”舀CSV里的每一条数据,不会乱碰隔壁的内容。

举个生活化的例子:你要把超市的进货清单(CSV文件)里的商品名称和单价整理出来,PHP的步骤就像“先找进货清单→拿笔逐行抄(解析)→抄完一行记一行”,具体代码不用怕复杂,核心逻辑是:先确认CSV文件的存放路径,再用fopen打开文件,用fgetcsv逐行读取,直到读完所有内容。

这里要注意一个小细节:如果你的CSV文件里有中文,一定要加个小设置——比如用fopen打开时,加个t参数,或者在代码里指定编码,就像给抄笔记的笔换了适配中文的笔,不会出现“张三”变成乱码的情况,避免白忙活一场。

试手小例子:读取通讯录CSV

比如你有一个手机通讯录的CSV,存了100个联系人,要导出成只带姓名和电话的列表,用PHP就能快速生成:

第一步,先准备你的CSV文件,比如命名为contacts.csv,内容是:

`

姓名,电话,地址

李四,138XXXX5678,上海静安区

王五,139XXXX9012,广州天河区

`

第二步,写几行简单的PHP代码,就能把需要的内容读出来,就像把通讯录里的姓名和电话挑出来列成清单,不用手动复制:

`php

// 打开CSV文件(这里假设和代码放在同一个文件夹)

$file = fopen('contacts.csv', 'r');

// 逐行读取,直到文件结束

while (($row = fgetcsv($file)) !== false) {

// 跳过表头(姓名、电话那一行),从第二行开始取数据

if ($row[0] == '姓名') continue;

// 输出姓名和电话,用逗号分隔

echo "姓名:{$row[0]},电话:{$row[1]}<br>";

}

// 关闭文件,就像整理好纸笔

fclose($file);

`

运行这个代码后,页面就会自动输出两个联系人的姓名和电话,不用你手动敲任何内容,哪怕CSV里有1000条数据,也只要几秒钟。

常见小坑要避开

处理CSV时,新手容易踩两个小坑:一个是编码问题,CSV如果是用Excel生成的,可能会带特殊格式,这时候可以在fgetcsv里加个参数适配;另一个是文件路径,别把CSV放错文件夹,就像找东西别放错抽屉,不然PHP找不到文件会报错。

学会用PHP读取CSV,相当于给数据整理装了个“自动分拣机”,不管是处理几百条通讯录,还是统计电商的订单数据,都能快速搞定,不用再手动复制粘贴浪费时间。

上一篇 C / C++编程语言在系统开发领域的核心应用与特性解析