PHP 文件系统 fgetcsv() 函数



PHP 文件系统fgetcsv()函数用于解析打开文件中的行并检查 CSV 字段。此函数在指定长度的新行或 EOF 处停止返回,以先到者为准。此函数在成功时返回数组中的 CSV 字段,在失败和 EOF 时返回 false。

此函数类似于 fgets() 函数,不同之处在于fgetcsv()函数会解析其读取的行的 CSV 格式字段,并返回一个包含读取字段的数组。fgetcsv()函数在错误时(包括文件结尾)可能会返回 false。

语法

以下是 PHP 文件系统fgetcsv()函数的语法:

array fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\\" ]]]] )

参数

以下是fgetcsv()函数的必需和可选参数:

序号 参数及说明
1

handle(必填)

要从中读取的文件句柄。

2

length

要读取的最大行长度。

3

delimiter

字段分隔符(默认为逗号)。

4

enclosure

字段封闭字符(默认为双引号)。

5

escape

转义字符(默认为反斜杠)。

返回值

此函数在成功时返回数组中的 CSV 字段,或在失败时返回 FALSE。

PHP 版本

fgetcsv()函数最初作为 PHP 4 核心的一部分引入,并且与 PHP 5、PHP 7、PHP 8 兼容良好。

示例

因此,我们将在打开 csv 文件后使用 PHP 文件系统fgetcsv()函数,并以数组形式回显值。请查看下面的 PHP 代码:

<?php
   $file = fopen("/Path/To/The/CSVFile/File.csv", "r"); 
   echo fgetcsv($file);
   fclose($file);
?>

输出

以下是上述代码的输出:

Array
(
    [0] => Javascript
    [1] => Java
    [2] => PHP
)

示例

此 PHP 代码示例演示了如何从 CSV 文件“EmpDetails.csv”读取和处理数据。此示例演示了在 PHP 中解析和生成 CSV 数据的基础知识。

除了fgetcsv()函数之外,我们还使用了 fopen()、feof() 和 fclose() 函数。这些函数将帮助我们打开文件、检查文件是否为空以及关闭文件。

<?php
   $file = fopen("/PhpProject/EmpDetails.csv", "r"); 

   while(! feof($file)) {
      print_r(fgetcsv($file));
   }
   fclose($file);
?> 

输出

以下是输出:

Array ( [0] => Name ) Array ( [0] => Arjun Sharma ) Array ( [0] => Vivaan Modi ) Array ( [0] => Radhika Apte )

示例

在此 PHP 代码中,我们将尝试打开一个 CSV 文件,读取其内容,并将每一行作为字符串输出。为了将数组转换为字符串,我们使用了 implode() 函数。

<?php
   // Open the file in read mode
   $file = fopen("/Applications/XAMPP/xamppfiles/htdocs/mac/csvfile.csv", "r");
   
   if ($file !== FALSE) {
      // Loop through each line of the file
      while (($data = fgetcsv($file)) !== FALSE) {
         // Print each line as a comma-separated string
         echo implode(", ", $data) . "<br>";
      }
      // Close the file
      fclose($file);
   } else {
      echo "Unable to open the file.";
   }
?>

输出

请查看上述 PHP 脚本的输出:

Name
Arjun Sharma
Vivaan Modi
Renuka Apte

示例

在下面的 PHP 代码中,我们将打开一个 CSV 文件,并逐行读取每一行的内容。并将内容格式化为每一行的“姓名”和“电子邮件”作为换行符字符串。

如果无法打开文件,则会显示错误警告。此外,在打印之前,会验证每一行是否包含准确的数据。

<?php
   // Open the file in read mode
      $file = fopen("/Applications/XAMPP/xamppfiles/htdocs/mac/csvfile1.csv", "r");

   // Check if the file was successfully opened
   if ($file !== FALSE) {
      // Read the CSV header
      $header = fgetcsv($file);
      
      // Loop through each line of the file
      while (($data = fgetcsv($file)) !== FALSE) {
         // Print user data
         echo "Name: " . $data[0] . ", Email: " . $data[1] . "<br>";
      }
      // Close the file
      fclose($file);
   } else {
      // If unable to open the file, display an error message
      echo "Unable to open the file.";
   }
?> 

输出

这将产生以下结果:

Name: Arjun Sharma, Email: [email protected]
Name: Vivaan Modi, Email: [email protected]
Name: Renuka Apte, Email: [email protected]

示例

现在我们将尝试演示如何使用fgetcsv()函数使用 PHP 从 CSV 文件中读取和显示产品信息。如果无法打开文件,它将显示错误消息。

<?php
   // Open the file in read mode
   $file = fopen("/Applications/XAMPP/xamppfiles/htdocs/mac/csvfile2.csv", "r");

   // Check if the file was successfully opened
   if ($file !== FALSE) {
      // Read the CSV header
      $header = fgetcsv($file);
      
      // Loop through each line of the file
      while (($data = fgetcsv($file)) !== FALSE) {
         // Print product information
         echo "Product Name: " . $data[0] . ", Price: $" . $data[1] . ", Quantity: " . $data[2] . "<br>";
      }
      // Close the file
      fclose($file);
   } else {
      // If unable to open the file, display an error message
      echo "Unable to open the file.";
   }
?> 

输出

这将生成以下输出:

Product Name: Cooler, Price: $10000, Quantity: 4
Product Name: Fridge, Price: $15000, Quantity: 1
Product Name: Fan, Price: $2000, Quantity: 4

注意

PHPfgetcsv()方法确保代码示例中提供的文件路径与服务器上 CSV 文件的实际位置相匹配。检查 CSV 数据的格式(如分隔符和封闭符),以确保正确解析。

总结

fgetcsv()函数通过自动将每一行转换为字段数组来改进在 PHP 中读取 CSV 数据的方式。此函数允许开发人员轻松处理 CSV 文件,提取重要信息,并将其应用到 PHP 应用程序中。

php_function_reference.htm
广告