• 技术文章 > php教程

    如何使用PHP处理CSV文件?(代码示例)

    青灯夜游 青灯夜游 2019-02-13 10:31:57 原创 302
    在PHP中我们可以使用fgetcsv()函数来解析CSV文件,它可以自动解析给定资源中的CSV字段。下面本篇文章就来给大家具体介绍一下使用PHP处理CSV文件的方法,希望对大家有所帮助。【视频教程推荐:PHP教程

    什么是CSV文件?

    CSV文件基本上只是一个符合特定格式的文本文件,一种用来存储数据的纯文本文件格式,通常用于电子表格或数据库软件中。在CSV文件中,所有值都以逗号分隔(因此,首字母缩略词背后的含义:逗号分隔值),而各行由换行符分隔。

    总结:CSV文件由逗号、数据和换行符组成;换行符分隔行和逗号分隔值/列。

    CSV文件的一个示例,将其命名为example.csv:

    Ted,USA,21
    Lisa,UK,23
    Michael,USA,20
    Louise,Ireland,30

    可以看出:每一行都用逗号分隔开;第一列是人的姓名,第二列是人的国家,最后一列是人的年龄;每个人都被换行符分隔。

    如何使用PHP处理CSV文件?

    php解析CSV文件可以使用fgetcsv()函数;该函数从打开的文件中解析一行,校验 CSV 字段。

    语法如下

    fgetcsv("filename.csv", 1000, ",");

    filename.csv:CSV文件的名称。

    1000:表示最长线的长度。

    “,”:表示可选的分隔符参数。默认当然是逗号(,)。

    为了使用fgetcsv()函数,我们需要先用fopen()函数打开文件进行读取,然后用fclose()函数关闭文件来结束代码。在两者之间,我们使用一个循环,分别解析CSV每一行。

    下面就来简单介绍一下如何处理:

    1、用fopen()函数打开文件并进行阅读:

    $h = fopen("filename.csv", "r");

    使用“r”模式打开文件并进行阅读;变量$h会从文件中保存数据的处理。

    2、使用fgetcsv()函数逐行读取CSV文件的数据,并将每一行数据单独保存到名为$ data的数组中。

    $data = fgetcsv($h, 1000, ",");

    为了读取所有行,我们需要使用while循环:

    while (($data = fgetcsv($h, 1000, ",")) !== FALSE) 
    {
      // 读取数据
    }

    3、需要关闭该文件

    fclose($h);

    结合上面的3个步骤:

    <?php
    // 打开文件并阅读
    if (($h = fopen("example.csv", "r")) !== FALSE) 
    {
      // 将每行数据都转换为本地$data变量并储存
      while (($data = fgetcsv($h, 1000, ",")) !== FALSE) 
      {
       //输出每行数据
        var_dump($data);
      }
      // 关闭文件
      fclose($h);
    }
    ?>

    输出:

    2.jpg

    代码示例:将CSV文件转换为PHP多维数组

    以下代码生成一个多维数组($ the_big_array),其每个项目都由一个从CSV文件中的单行转换而来的数组组成。

    <?php 
    $filename = 'example.csv';
    // 用于保存所有数据的多维(嵌套)数组
    $the_big_array = []; 
    // 打开文件并阅读
    if (($h = fopen("{$filename}", "r")) !== FALSE) 
    {
      // 文件中的每一行数据都被转换为我们调用的单个数组$data
      // 数组的每个元素以逗号分隔
      while (($data = fgetcsv($h, 1000, ",")) !== FALSE) 
      {
        // 每个单独的数组都被存入到嵌套的数组中
        $the_big_array[] = $data;
      }
      // 关闭文件
      fclose($h);
    }
    // 以可读格式显示代码
    echo "<pre>";
    var_dump($the_big_array);
    echo "</pre>";
    ?>

    输出:

    3.jpg

    以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

    以上就是如何使用PHP处理CSV文件?(代码示例)的详细内容,更多请关注php中文网其它相关文章!

    第五期线上培训班
    专题推荐: PHP CSV文件
    上一篇:在PHP中初始化空数组的最佳方法 下一篇:PHP中的isset()和array_key_exists()函数的区别

    相关文章推荐

    • js读取csv文件并使用json显示出来_javascript技巧 • php实现CSV文件导入和导出_php技巧 • php使用fputcsv()函数csv文件读写数据的方法_php技巧 • php将csv文件导入到mysql数据库的方法_php技巧

    全部评论我要评论

  • 取消 发布评论 发送
  • PHP中文网