zoukankan      html  css  js  c++  java
  • PHP处理CSV表格文件的常用操作方法是怎么样呢

    php来说,fgetcsv读入csv表格,返回一个数组,
    然后foreach输出成HTML的<table>,这步操作几行代码就能实现,非常简单.
    工作量主要还在于浏览器前端,建议你用jQuery进行DOM和AJAX操作,
    要实现phpMyAdmin那样细粒度双击单元格编辑,然后AJAX提交也不难,
    或者整个表格写好后一次性$("form").serialize();然后AJAX提交也可以.
    CSV表格的几条规则:
    1.每一行的单元格内容之间用逗号分隔.
    2.如果单元格的内容本身有逗号,这个单元格的内容将会用引号包含.
    3.如果单元格的内容本身有引号:
    (1)引号不在首或尾,这个单元格内容不会被引号包含.
    (2)引号在首或尾,这个单元格内容会被引号包含,并且原来首尾的引号会被转义.
    读写CSV

    <?php
    header('Content-Type: text/plain; charset=utf-8');
    //导出CSV表格:数组转CSV
    $arr = array (
    array('ab', 'cd'),
    array('"a,b"', '"c,d"'),
    );
    $fp = fopen('file.csv', 'w');
    foreach ($arr as $row) {
    //将一行格式化为CSV并写入文件指针
    fputcsv($fp, $row);
    }
    fclose($fp);
    unset($arr);
    //导入CSV表格:CSV转数组
    $fp = fopen('file.csv', 'r');
    while ( ($row = fgetcsv($fp)) !== FALSE ) {
    //从文件指针中读入一行并解析CSV
    $arr[] = $row;
    }
    fclose($fp);
    var_export($arr);
    另存为一个独立文件
    download.php:

    <?php
    $list = array (
    'aaa,bbb,ccc,dddd',
    '123,456,789',
    '"aaa","bbb"'
    );
    session_start();
    $_SESSION['outputArray']=$list;
    ?>
    <a href="test.php" target="_blank">下载csv文件</a>
    test.php:
    <?php
    session_start();
    $outputArray=$_SESSION['outputArray'];
    header('Content-Type: application/csv');
    header('Content-Disposition: attachment;filename="sales.csv"');
    $output=fopen('php://output','w') or die("can not open");
    foreach ($outputArray as $line) {
    fputcsv($output, split(',', $line));
    }
    fclose($output) or die("can not close");
    ?>

    自动保存csv文件到指定地点

    <?php
    $list = array (
    'aaa,bbb,ccc,dddd',
    '123,456,789',
    '"aaa","bbb"'
    );
    $fp = fopen('file.csv', 'w');
    foreach ($list as $line) {
    fputcsv($fp, split(',', $line));
    }
    fclose($fp);
    ?>

  • 相关阅读:
    new操作符
    delete和delete[] 的区别
    oracle查看编码以及修改编码
    C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
    error:/usr/bin/ld:skipping incompatible ./libxxxx.so when searching for lxxxx
    shell环境变量以及set,env,export的区别
    malloc/free和new/delete的区别
    form表单提交回调函数
    jQuery ajax 跨域请求
    开博咯
  • 原文地址:https://www.cnblogs.com/2881064178dinfeng/p/6222898.html
Copyright © 2011-2022 走看看