• PHP 数组与CSV文件互转


    项目说明

    数组导出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

  • 相关阅读:
    学号 20175212童皓桢 《Java程序设计》第8周学习总结
    20175212童皓桢 在IDEA中以TDD的方式对String类和Arrays类进行学习
    20175212童皓桢 Java实验二-面向对象程序设计实验报告
    学号20175212 《Java程序设计》第7周学习总结
    20175212童皓桢 结对编程项目-四则运算 第二周
    20175212童皓桢 类定义
    20175212童皓桢 《Java程序设计》第六周学习总结
    20175212童皓桢 结对编程项目-四则运算 第一周
    学号 20175212童皓桢 第五周迭代选做题学习
    学号 2018-2019-20175212 童皓桢《Java程序设计》第5周学习总结
  • 原文地址:https://www.cnblogs.com/xuey/p/10229562.html
Copyright © 2020-2023  润新知