php导入csv文件,php实现CSV文件导入和导出

项目开发中,很多时候要将外部CSV文件导入到数据库中或者将数据导出为CSV文件,那么具体该如何实现呢?本文将使用PHP并结合mysql,实现了CSV格式数据的导入和导出功能。

我们先准备mysql数据表,假设项目中有一张记录学生信息的表student,并有id,name,sex,age分别记录学生的姓名、性别、年龄等信息。

我们还需要一个html交互页面,放置导入表单和导出按钮。

选择好本地csv文件后,点击导入,提交到do.php?action=import处理,而点击导出按钮则请求地址do.php?action=export进行数据导出处理。

1.导入CSV

do.php需要根据get过来的参数,分别处理导入和导出过程,php结构如下:

导入CSV处理流程:校验csv文件合法性(本文忽略)->打开读入并解析csv文件中的字段->循环获取各字段值->批量添加到数据表中->完成。

注意php自带的fgetcsv函数可以轻松处理csv,使用该函数可以从文件指针中读入一行并解析CSV字段。下面的函数将csv文件字段解析并以数组的形式返回。

此外在导入到数据库中时,我们采用的是批量插入而不是一条条插入的,因此在构建SQL语句时,要稍作处理,见代码。

2.导出CSV

我们知道csv文件是由逗号分割符组成的纯文本文件,你可以用excel打开,效果跟xls表个一样。

导出CSV处理流程:读取学生信息表->循环记录构建逗号分隔的字段信息->设置header信息->导出文件(下载)到本地

要将数据导出到本地即下在,需要修改header信息,代码如下:

注意导入和导出的过程中,因为我们使用的是统一UTF-8编码,遇到中文字符一定要记得转码,否则可能会出现中文乱码的情况。

以上就是本文的全部内容,希望本文所述对大家的php程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

剑指offer-二叉搜索树的后序遍历序列

/*输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。*/ /** 已知条件:后序序列最后一个值为root;二叉搜索树左子树值都比root小,右子树值都…

Nessus漏洞扫描教程之安装Nessus工具

Nessus基础知识 Nessus号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus不同于传统的漏洞扫描软件,Nessus可同时在本机或远端上遥控,进行系…

php强制关机代码,程序员关机代码是什么?

程序员关机代码:1、定时关机,在运行中输入【at 22:00 Shutdown -s】;2、倒计时方式关机,在运行中输入【Shutdown.exe -s -t 3600】;3、自动关机,输入【shutdown -i】。程序员关机代码:1、比如你…

Java 9和应用程序性能监视的激动人心之处

通过AppDynamics解决应用程序问题的速度提高了10倍–以最小的开销在代码级深度监视生产应用程序。 开始免费试用! 在当今的现代计算时代,软件创新的不断增强使我们更接近软件革命的时代。 也许在遥远的未来,这可能是对21世纪记忆犹新的方式。…

GPU下train 模型出现nan

When training on GPU, the error "Model diverged with loss NaN" is often caused by a sotmax thats getting a symbol larger than vocab_size 转载于:https://www.cnblogs.com/wuxiangli/p/10344259.html

php语言的四种循环控制语句,PHP循环控制语句

循环语句的作用就是在条件满足的情况下,可以执行多次相同或相似的任务,PHP中的循环语句包括for、while、do-while和foreach语句结构,下面分别介绍。for语句for语句结构一般用于执行确定循环次数的操作,其条件包括三个部分&#xf…

Kali linux安装漏洞扫描工具Nessus安装指南

引子:Nessus是著名信息安全服务公司tenable推出的一款漏洞扫描与分析软件,号称是"世界上最流行的漏洞扫描程序,全世界超过75,000个组织在使用它"。尽管这个扫描程序可以免费下载得到,但是要从Tenable更新到所有最新的威胁信息,每年…

7.9 规划Varnish缓存

./varnishlog -i VCL_LOG 转载于:https://www.cnblogs.com/likevin/p/10337069.html

php详解递归,PHP递归算法详解

本篇文章主要介绍PHP递归算法详解,感兴趣的朋友参考下,希望对大家有所帮助。遇到需要设计树节点的数据库结构,以及需要读出来的树节点数据结构!大家是否会选择用数据库的查询方式来获取树结构呢?//曾经的数据库查询获取…

土城战役_避免使用FOR –反假战役

土城战役您是否想知道FOR如何影响您的代码? 他们如何限制您的设计,更重要的是如何将您的代码转换为无人为含义的多行代码? 在这篇文章中,我们将看到如何将for的简单示例(由Francesco Cirillio提供- 反if活动&#xff…

Map以自定义类做为键值

map在STL中的定义 template <class Key, class T, class Compare less<Key>, class Alloc alloc> 第一个参数Key是关键字类型 第二个参数T是值类型 第三个参数Compare是比较函数&#xff08;仿函数&#xff09; 第四个参数是内存配置对象 map内部存储机制实际是以…

“基于深度学习的目标检测跟工业机器人结合”实现过程

基于深度学习的目标检测技术在工业机器人中的应用&#xff0c;可以帮助机器人实现自动化的目标检测和识别任务。以下是基于深度学习的目标检测与工业机器人结合的一般实现过程&#xff1a; 1. 数据采集和准备&#xff1a; 首先&#xff0c;收集和准备用于训练深度学习模型的数据…

小规模流处理kata。 第2部分:RxJava 1.x / 2.x

在第1部分&#xff1a;线程池中&#xff0c;我们设计并实现了相对简单的系统&#xff0c;用于实时处理事件。 确保您已阅读上一部分&#xff0c;因为它包含一些我们将重用的类。 以防万一这是要求&#xff1a; 一个系统每秒传送约一千个事件。 每个Event至少具有两个属性&…

java 计算信度,11.5.2 评分者信度实例分析

11.5.2 评分者信度实例分析【例11.5】 某校学生举办歌唱大赛&#xff0c;请5位评委老师为最终进入决赛的6名同学评定等级&#xff0c;结果如表11-10所示&#xff0c;请计算其信度。表11-10 歌唱大赛评定等级结果学生教师A1A2A3A4A5A6A344335B434343C233253D445344E324333解&a…

JAVA 类加载 随记

视频: https://www.bilibili.com/video/av29502877 1 JVM把Class加载到内存当中&#xff0c;检验解析初始化。默认使用的懒加载方式。 以下步骤是并行执行 可以把加载源看成JAVA配置文件。 解析&#xff1a; 符号引用&#xff1a; 类名&#xff0c;基本类型 直接引用&#xff…

Linux IO实时监控iostat命令详解

简介 iostat主要用于监控系统设备的IO负载情况&#xff0c;iostat首次运行时显示自系统启动开始的各项统计信息&#xff0c;之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。 语法 iostat [ -c ] [ -d ] [ -h ] […

打破冷漠僵局文章_研究僵局–第2部分

打破冷漠僵局文章调查死锁时最重要的要求之一就是要研究死锁。 在我的上一个博客中&#xff0c;我写了一些名为DeadlockDemo代码&#xff0c;该代码使用一堆线程在一系列银行账户之间转移随机数&#xff0c;然后陷入僵局。 该博客运行该代码以演示获取线程转储的几种方法。 线…

七牛云php20m文件上传不了,七牛云存储 - 用php上传图片,我在本地测试,用php 接口,不成功...

七牛反馈显示信息说明已经成功了&#xff0c;但是在七牛空间显示的文件却不完整请问这是为什么啊&#xff1f;&#xff01;&#xff01;测试文件如下&#xff0c;本地localhost测试&#xff1a;require_once("qiniu/io.php");require_once("qiniu/rs.php")…

洛谷 P2463 [SDOI2008]Sandy的卡片 解题报告

P2463 [SDOI2008]Sandy的卡片 题意 给\(n(\le 1000)\)串&#xff0c;定义两个串相等为“长度相同&#xff0c;且一个串每个数加某个数与另一个串完全相同”&#xff0c;求所有串的最长公共子串&#xff0c;每个串长\(\le 101\)&#xff0c;值域\(\in [0,1864]\) 先差分一下&…

linux和windows的进程的虚拟地址空间

昨晚看到了深夜&#xff0c;终于对进程的虚拟地址空间有了个大致的了解&#xff0c;很激动&#xff0c;也很欣慰。回头想来&#xff0c;一个程序员&#xff0c;真的应该知道这些知识&#xff0c;否则还真不太称职。 首先告诉大家&#xff0c;我后面提到的这些知识在《windows核…