PHP 如何显示CSV文件中的数据

PHP 如何显示CSV文件中的数据

在本文中,我们将学习如何使用PHP和fgetcsv()、str_getcsv()和SplFileObject函数从CSV文件中显示数据。

CSV文件是一种简单的文件格式,用于存储用逗号分隔的值数据,并且其中的每一行代表表格数据中的一条记录。为了使用PHP读取CSV文件,我们将使用fgetcsv()函数,该函数从CSV文件中读取一行并返回表示该行中的CSV数据的值数组。

我们通过下面的示例来理解:

示例1

在这个例子中,我们将使用fgetcsv()函数读取一个数据CSV文件,并使用HTML table标签以表格的格式显示这些值。

这个示例使用的CSV文件为:

Data.csv

Name, Age, City
John, 30, New York
Mary, 25, Los Angeles
Tom, 40, Chicago

文件名:index.php

<html lang="en">
<head>
   <title>How to Display Data from CSV file using PHP?</title>
</head>
<body>
  <h3>How to Display Data from CSV file using PHP?</h3>
  <?php
    csvFile = fopen('Data.csv', 'r');

    echo '<table>';
    while ((data = fgetcsv(csvFile, 1000, ",")) !== FALSE) {
      echo '<tr>';
      foreach (data as value) {
        echo '<td>' . htmlspecialchars(value) . '</td>';
      }
      echo '</tr>';
    }
    echo '</table>';

    fclose($csvFile);
    ?>
</body>
</html>

示例2

在这个例子中,我们将读取一个包含学生姓名、年龄和性别的CSV文件,并使用3种不同的方法将他们的数据以表格形式显示,分别使用str_getcsv、fgetcsv和SplFileObject方法。

student.csv

Name,Age,Gender
John Doe,25,Male
Jane Smith,30,Female
Bob Johnson,40,Male
Sara Lee,22,Female

文件名:index.php

<html lang="en">
<head>
   <title>How to Display Data from CSV file using PHP?</title>
</head>
<body>
  <h3>How to Display Data from CSV file using PHP?</h3>

  <!-- Method 1: str_getcsv -->
  <?php
    csvData = file_get_contents('students.csv');rows = str_getcsv(csvData, "  
"); // Split CSV data into rows

    echo '<h4>Method 1: str_getcsv</h4>';
    echo '<table>';
    echo '<thead><tr><th>Name</th><th>Age</th><th>Gender</th></tr></thead>';
    echo '<tbody>';

    foreach (rows as row) {values = str_getcsv(row, ","); // Split row into values
      echo '<tr>';
      foreach (values as value) {
        echo '<td>' . htmlspecialchars(value) . '</td>';
      }
      echo '</tr>';
    }

    echo '</tbody></table>';
  ?>

  <!-- Method 2: Combine fgetcsv() and HTML -->
  <?php
    echo '<h4>Method 2: Combine fgetcsv() and HTML</h4>';
    csvFile = fopen('students.csv', 'r');
    echo '<table>';
    echo '<thead><tr><th>Name</th><th>Age</th><th>Gender</th></tr></thead>';
    echo '<tbody>';
    while ((data = fgetcsv(csvFile, 1000, ",")) !== FALSE) {
      echo '<tr>';
      foreach (data as value) {
        echo '<td>' . htmlspecialchars(value) . '</td>';
      }
      echo '</tr>';
    }
    echo '</tbody></table>';
    fclose(csvFile);
  ?>

  <!-- Method 3: using SplFileObject -->
  <?php
    echo '<h4>Method 3: using SplFileObject</h4>';csvFile = new SplFileObject('students.csv', 'r');
    csvFile->setFlags(SplFileObject::READ_CSV);

    echo '<table>';
    echo '<thead><tr><th>Name</th><th>Age</th><th>Gender</th></tr></thead>';
    echo '<tbody>';

    foreach (csvFile as row) {
      echo '<tr>';
      foreach (row as value) {
        echo '<td>' . htmlspecialchars(value) . '</td>';
      }
      echo '</tr>';
    }

    echo '</tbody></table>';
  ?>

结论

总之,使用PHP从CSV文件中显示数据是一个简单的过程,可以使用fgetcsv()函数实现。借助HTML标签,我们可以轻松地将数据以表格形式显示出来。通过参考本文中提供的示例,我们学会了如何在PHP中读取和显示CSV文件中的数据,这在各种应用程序中都非常有用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程