0

0

php怎么用csv_PHP CSV文件读写、解析与数据导入导出方法

星夢妙者

星夢妙者

发布时间:2025-11-04 03:19:54

|

1067人浏览过

|

来源于php中文网

原创

使用PHP处理CSV文件需注意读写、编码和数据一致性问题。首先通过fopen配合fgetcsv逐行读取大文件,设置分隔符与封装符,并用fclose关闭句柄;写入时用fopen打开文件,fputcsv格式化数组数据并处理特殊字符;中文乱码需转换编码为UTF-8并在文件头添加BOM;可使用SplFileObject面向对象操作,支持迭代与异常处理;导出数据库数据时设置Content-Disposition响应头,结合fputcsv输出到浏览器;批量导入则跳过表头,构造INSERT语句或预处理,结合事务确保数据一致,错误行记录日志后跳过。

php怎么用csv_php csv文件读写、解析与数据导入导出方法

如果您需要在PHP中处理CSV文件的读写、解析或实现数据的导入导出功能,可能会遇到格式不一致、编码错误或数据丢失等问题。以下是解决此类问题的具体操作方法。

本文运行环境:MacBook Pro,macOS Sonoma

一、使用fgetcsv读取CSV文件

该方法通过逐行读取CSV文件并解析字段,适用于大文件处理,避免内存溢出。

1、使用fopen打开CSV文件,指定只读模式。

立即学习PHP免费学习笔记(深入)”;

2、在循环中调用fgetcsv函数,按行读取内容,每行自动解析为数组。

3、设置分隔符、封装符和编码选项,例如使用逗号作为分隔符,双引号作为封装符。

4、将每一行数据存储到一个二维数组中,便于后续处理或导入数据库。

5、读取完成后调用fclose关闭文件句柄。

二、使用fputcsv写入数据到CSV文件

此方法用于将数组数据格式化为CSV标准格式并写入文件,适合导出报表或备份数据。

1、使用fopen以写入模式打开目标CSV文件,若文件不存在则创建。

2、遍历待导出的数据数组,对每一行调用fputcsv函数进行写入。

3、确保输出的数据字段顺序一致,并处理包含逗号或换行符的特殊字段。

4、写入完毕后调用fclose释放资源。

三、处理中文编码问题

当CSV文件包含中文时,常因字符集不匹配导致乱码,需明确设置编码格式。

1、在读取前确认源文件的编码类型,常见为UTF-8或GBK。

2、若文件为GBK编码,使用mb_convert_encoding函数转换为UTF-8后再处理。

3、写入CSV时,在文件头部添加BOM标记(\xEF\xBB\xBF),确保Excel正确识别UTF-8编码。

Type Studio
Type Studio

一个视频编辑器,提供自动转录、自动生成字幕、视频翻译等功能

下载

4、可在浏览器导出时设置Header头:Content-Type: text/csv; charset=UTF-8

四、使用SplFileObject类进行面向对象操作

SplFileObject提供更现代的OOP方式处理文件,支持迭代和异常处理。

1、实例化SplFileObject对象,传入文件路径和操作模式。

2、调用setFlags方法启用SplFileObject::READ_CSV标志。

3、使用foreach循环遍历对象,每一项即为解析后的数组行。

4、对于写入操作,可结合fputcsv方法在SplFileObject句柄上执行。

五、从数据库导出数据为CSV文件

将MySQL查询结果直接生成CSV文件,适用于后台管理系统中的数据导出功能。

1、执行SQL查询获取结果集,使用PDO或mysqli连接数据库。

2、设置HTTP响应头,提示浏览器下载文件,如:Content-Disposition: attachment; filename=data.csv

3、使用fopen('php://output', 'w')将内容直接输出到浏览器。

4、先写入表头行,再逐行写入查询结果,每行调用fputcsv写入。

六、批量导入CSV数据到MySQL数据库

通过PHP脚本将CSV内容插入数据库表,适用于初始化数据或定期同步。

1、读取CSV文件内容,跳过标题行(如有)。

2、构造批量INSERT语句,或将每行数据通过预处理语句执行插入。

3、使用事务机制包裹所有插入操作,确保数据一致性。

4、遇到格式错误或缺失字段时,记录日志并跳过当前行,继续处理下一行。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2591

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1620

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1508

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

952

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1417

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1234

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1447

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1306

2023.11.13

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

9

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.8万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 793人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号