项目说明

数组导出CSV,ZIP文件,CSV,ZIP文件还原数组(阵列导出文件,文件恢复阵列)适用于导入导出会员,商品信息
所有配置项ExecData中配置
注意:读取中文文件名文件,数据时需要注意本地区域设置
写入文件数据是UTF-8,设置 FetchFile 类中 fetchFile() 函数中 setlocale(LC_ALL, 'US')才可读取到数据; 
测试平台为WIN,其他平台未测试; 
如果不能读取数据,请根据相应地区字符编码设置

数据转码编码说明

  • PHP文件编码与网页编码$this->config[ 'webChar']一致都为UTF-8
  • 写入文件时,传入的文件名(参数)编码是UTF-8(PHP文件编码),将文件名转换为$this->config[ 'fileNameChar'](GBK),否则中文文件名乱码,数据数据编码为传入时原数据编码UTF -8(PHP文件编码)
  • 读取文件时,判断文件是否存在,传入的文件名(参数)编码为UTF-8(PHP文件编码),中文文件名必须转为$this->config['fileNameChar'](GBK)才能判断
  • 读取文件数据时,原数据如果有中文,会出现乱码,需要重新设置输入输出编码为UTF-8(PHP文件编码,网页编码)
  • 读取压缩文件中某个指定的文件时(按照文件名读取时),传入的参数为UTF-8(PHP文件编码),写入压缩包时文件名为$this->config[ 'fileNameChar'](GBK);读取压缩包文件(根据传入的文件名读取)数据时,文件名编码必须一致,否则读取不到数据

文件说明

| --- datafile /导出文件存放位置必须有创建,写入,读取权限
| ---日志/读取文件是错误日志存放位置必须有创建,写入权限
| --- src / 
| --- demo.php示例文件
| --- ExceData.php执行读写操作调用类文件
| --- FetchFile.php读取文件操作类
| --- Pub.php读写操作基类
| --- WriteFile .php数组写入文件(下载)类
| --- test /示例图片

数组数据导出(下载)CSV / ZIP文件

传入数组,如果限制每个文件的数据条数小于数组长度,自动生成压缩文件; 
如果限制每个文件的数据条数大于数组长度,根据参数设置是否压缩文件;

调用示例:
$exec=new ExecData(); $exec->writeData($two);;

共5个参数,第一个参数必填,其他参数可选

 * @param $ data数组数据
* @param $ tit csv文件title,Array或者'aa,bb'字符串类型,建议数组长度与数据每个二维数据长度一致
* @param $ limit每个文件数据条数
* @param $ filename文件名,不加后缀,例如`aa`,生成的文件是`aa.csv / aa.zip`;默认文件名`WriteFile-> defaultFileName()`函数定义
* @param $ compr单个文件是否压缩,默认false不压缩

CSV / ZIP文件还原/导入数组数据

读取CSV文件,返回数组; 
如果读取压缩包中所有文件如果没有错误,获取数组后会自动删除源文件;如果有错误,会输出提示信息,可以通过ExecData类文件中的fetchData函数配置项中的logOut设置是否输出读取文件压缩包,压缩包有多少个有内容的文件,就返回几个数组
如果读取整个文件并且没有错误,是否删除源文件可以通过配置FetchFile类中$this->config["isDelFile"]=false设置,默认不删除,值为false
修改读取文件时错误日志存放位置配置:
ExceData文件fetchData()函数中$f_config['logFile']设置自分类中翻译定义即可

调用示例:
$exec=new ExecData(); $exec->fetchData("compress2.csv");

共4个参数,第一个参数必填,其他参数可选

 * @param $ filename要读取的文件名
* @param bool是否返回文件中的tit,默认false不返回;
* @param bool是否将csv文件中的tit做为数组的key,默认false返回索引数组
* @param int / string
* int读取第几个文件的数据,默认0读取所有文件,如果压缩文件中只有一个文件忽略此参数
*如果$ index = 1,读取第一个文件;
* string要读取的文件名如果嵌套文件请添加文件夹路径例如aa / aa.csv,$ fileway参数必须为false

项目地址:https://github.com/xue-y/arrcsv

packagist:https://packagist.org/packages/xue-y/arrcsv

PHP 数组与CSV文件互转的更多相关文章

  1. python:将numpy数组写入csv文件

    import numpy as np np.savetxt('E:\\forpython\\featvector.csv',data_to_save,delimiter=',')

  2. java读取目录下所有csv文件数据,存入三维数组并返回

    package dwzx.com.get; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; ...

  3. php上传excle文件,csv文件解析为二维数组

    解析上传的CSV文件不是什么难事,直接读取转成你想要的数组样子就OK了. public function putStoreStockIn ($filePath = '') { $file = fope ...

  4. C++ 把数组数据存入 CSV 文件,以及读取 CSV 文件的数据

    1. CSV-百度百科 2. 代码 #pragma once //Microsoft Visual Studio 2015 Enterprise #include<iostream> #i ...

  5. 将数组,矩阵存入csv文件中

    我们在做各种模型训练时,往往会先将数据处理成矩阵,然后交给建模的人去训练.这时通常数据清洗者提交的是保存了矩阵的文件,一般为TXT或csv,接下来主要讲解我在实现这个过程中遇到的一些问题. impor ...

  6. PHP导出数据到CSV文件函数 csv_export()

    后台往往需要导出各种数据到 Excel文档中.通常我们是导出 .csv文件格式,PHP导出函数参考代码如下: /** * 导出数据到CSV文件 * * @param array $data 二维数组( ...

  7. php解析.csv文件

    public function actionImport() { //post请求过来的 $fileName = $_FILES['file']['name']; $fileTmpName = $_F ...

  8. CSV文件的读取 导出

    CSV文件是 逗号分隔值文件 内容基本是这么存的... 姓名,年龄,性别/r/n王有才,,男/r/n王二妞,,女 一行值内用逗号 , 分开  行与行之间用  /r/n  分隔 说白了,他其实是一个字符 ...

  9. 使用PHP导入和导出CSV文件

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

随机推荐

  1. loadrunner load generator设置init人数

    Load Generator中还有一个很重要的设置.就是用来设置init人数的,我们在运行脚本的时候会发现,在场景监控中,init默认不会超过50个人,也就是最大并发是50个人,我们想使用超过50个人 ...

  2. code1068 乌龟棋

    暴力显然不行,所以考虑dp 记f[i][j][k][l]为使用i张1,j张2,k张3,l张4所得到的最大分数. 对于每个f[i][j][k][l],都可以由i-1张1,j张2,k张3,l张4所得到, ...

  3. Django常见出错解决方案汇总-乾颐堂

    一.模板类型错误: 错误原因:在models中漏掉了return: class UserProfile(models.Model): """ 功能说明:        扩 ...

  4. Django框架请求生命周期

    先看一张图吧! 1.请求生命周期 - wsgi, 他就是socket服务端,用于接收用户请求并将请求进行初次封装,然后将请求交给web框架(Flask.Django) - 中间件,帮助我们对请求进行校 ...

  5. Windows下如何安装MongoDB

    下载地址: http://www.mongodb.org/downloads 我下载的是:mongodb-win32-x86_64-2008plus-2.6.6 解压到:D:\soft 同时在该目录下 ...

  6. 【转载】mysql中timestamp,datetime,int类型的区别与优劣

    转载来自souldak,微博:@evagle以下内容整合筛选自互联网: int1. 占用4个字节2. 建立索引之后,查询速度快3. 条件范围搜索可以使用使用between4. 不能使用mysql提供的 ...

  7. Java对称加密算法

    对称加密算法概念 加密密钥和解密密钥相同,大部分算法加密揭秘过程互逆. 特点:算法公开.(相比非对称加密)计算量小.加密速度快.效率高. 弱点:双方都使用同样的密钥,安全性得不到保证. 常用对称加密算 ...

  8. 洛谷P4234 最小差值生成树(lct动态维护最小生成树)

    题目描述 给定一个标号为从 11 到 nn 的.有 mm 条边的无向图,求边权最大值与最小值的差值最小的生成树. 输入输出格式 输入格式:   第一行两个数 n, mn,m ,表示图的点和边的数量. ...

  9. Redis 七月小说网的爬虫缓存设计

    一.爬虫策略 1.主服务器先根据spider.all set排重,再 lpush request_url 到spider.wait List中,并且 sadd request_url 到 set中: ...

  10. Inno Setup卸载时注销bho

    Inno setup是一个制作安装包的免费工具,比如你用Qt开发完成一款软件,拿Inno setup打个安装包甩给客户安装就好了. 但是bho插件在注册后,万一用户卸载软件时,bho插件还是躺在管理加 ...