Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

PHP Filesystem fgetcsv() Function



The PHP Filesystem fgetcsv() function is used to parse a line from an open file and check for CSV fields. This function stops returning on a new line at a specified length or EOF, whichever comes first. This function returns CSV fields in the array on success or false on failure and EOF.

This function is similar to fgets() function except that fgetcsv() function parses the line it reads for fields in CSV format and returns an array containing the fields read. The fgetcsv() function can return false on error, including the end of a file.

Syntax

Below is the syntax of the PHP Filesystem fgetcsv() function −

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

Parameters

Here are the required and optional parameters of the fgetcsv() function −

Sr.No Parameter & Description
1

handle(Required)

The file handle to read from.

2

length

Maximum line length to read.

3

delimiter

Field delimiter (default is a comma).

4

enclosure

Field enclosure character (default is a double quote).

5

escape

Escape character (default is a backslash).

Return Value

This function returns CSV fields in the array on success, or FALSE on failure.

PHP Version

The fgetcsv() function was first introduced as part of core PHP 4 and work well with the PHP 5, PHP 7, PHP 8.

Example

So we will use the PHP Filesystem fgetcsv() function after opening the csv file and echo the values in the array form. View the PHP code below −

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

Output

Here is the output of the above code −

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

Example

This PHP code sample shows you how to read and handle data from the CSV file "EmpDetails.csv." This example shows the basics of parsing and producing CSV data in PHP.

Here we have used fopen(), feof() and fclose() functions other than fgetcsv() function. These functions will help us to open file, to check that the empty or not, and to close the file.

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

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

Output

Here is the output −

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

Example

In this PHP code, we will try to open a CSV file, reads its contents, and produces each line as a string. To convert the array to a string, we have used implode() function.

<?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.";
   }
?>

Output

See the output of the above PHP script −

Name
Arjun Sharma
Vivaan Modi
Renuka Apte

Example

In the below PHP code, we will open a CSV file, and read each row's contents line by line. And format the content as the "Name" and "Email" from each row as a line-break string.

If the file cannot be opened, an error warning is displayed. In addition, each row is verified to contain accurate data before printing.

<?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.";
   }
?> 

Output

This will produce the following outcome −

Name: Arjun Sharma, Email: as@gm.com
Name: Vivaan Modi, Email: vm@gm.com
Name: Renuka Apte, Email: ra@gm.com

Example

Now we will try to show how we can use fgetcsv() function to read and display product information from a CSV file using PHP. If the file cannot be opened, it will display an error message.

<?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.";
   }
?> 

Output

This will generate the below output −

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

Note

The PHP fgetcsv() method ensure that the file path provided in the code samples matches the actual location of your CSV files on the server. Check your CSV data's formatting, like delimiters and enclosures, to ensure proper parsing.

Summary

The fgetcsv() function improves reading CSV data in PHP by automatically converting each line into an array of fields. This function allows developers to easily process CSV files, extract important information, and apply it into PHP applications.

php_function_reference.htm
Advertisements