Labels

php (35) javascript (31) phpjavascript (30) jquery (23) html (20) mysql (14) database (9) codeigniter (4) json (4) bar chart (2) calendar (2) column chart (2) framework (2) google maps (2) query (2) tables (2) url (2) dropdown (1)

Monday, January 29, 2018

How To Convert PHP Array To CSV File And Download Automatically.

The function convert_array_to_csv($input_array, $download_file_name, $delimiter)  have 3 parameters which is used in below example.
The first parameter is used to convert PHP array to  CSV and The other two parameters are used to specify the name of the CSV file, and a delimiter.In this example we are using some function i.e. fopen(), fputcsv(), fseek() and fpassthru().

fopen() : This function opens a file or URL.
fopen() takes two parameters
1.php://memory is  read-write streams that allow temporary data to be stored in a file. php://memory will always store its data in memory.
2. Mode of the file i.e  "w" (Write only. Opens and clears the contents of file; or creates a new file if it doesn't exist).

fputcsv():This is used for formatting a line as CSV and writes it to an   open file.

fseek():This function moves the file pointer from its current  position to a new position, forward or backward, specified by the number of    bytes.

After executing fseek() in this example  CSV is ready to download. In order to   download/Export the file, We use

header('Content-Type: application/csv');
header('Content-Disposition: attachement; 
                        filename="' $download_file_name'";');

This  function tells the browser how to interpret it  content and also it tells the  browser that we want to download not display the content of the file.

fpassthru():This function reads all data from the current position in  an open file, until EOF, and writes the result to the output buffer.

index.php

<?php
function convert_array_to_csv($input_array, $download_file_name, $delimiter)
{
  $f = fopen('php://memory', 'w'); /* it will store its data in memory */

  
foreach ($input_array as $line) {

  fputcsv($f, $line, $delimiter); 

   }
 fseek($f, 0);   

 /* modify header to be downloadable csv file */
 header('Content-Type: application/csv');
 header('Content-Disposition: attachement; filename="' . $     download_file_name. '";');

 fpassthru($f); /* Send file to browser for download */
}

/** Array to convert to csv */
$array = Array(
    Array('RollNo',
         'FirstName', 
        'LastName'
    ),
    Array(1,
        'Durga',
        'prasad'
    ),
    Array(2,
        'Ranjan',
        'Kumar'
    ),
    Array(3,
        'Suresh',
        'Sarika'
    )
);
convert_array_to_csv($array, 'report.csv', ',');
?>  

Finally after executing index.php a CSV file name report.csv
automatically downloaded. And when we open this file in
Notepad it looks like this

RollNo,FirstName,LastName
1,Durga,prasad
2,Ranjan,Kumar
3,Suresh,Sarika

8 comments:

  1. I am very enjoyed with this blog. Its an informative topic. It help me quite definitely to resolve some problems. Its opportunity are so fantastic and working style so speedy.
    social media marketing agency singapore

    ReplyDelete
  2. Thank you so much for providing such a useful content. very use full for us. Digital Signature Certificate

    ReplyDelete
  3. Thanks for sharing such great piece of information with us. Digital Signature Certificate

    ReplyDelete
  4. I really enjoyed reading your blog, you have lots of great content. Please visit here:
    Private detective agency in Mumbai

    ReplyDelete
  5. Thanks for the post I actually learned something from it. Very good content on this site Always looking forward to new post. Apply Class 3 Digital Signature Certificate

    ReplyDelete
  6. This is a 2 good post. This post gives truly quality information. in fact very useful tips are provided here. thank you so much. Keep up the good works.
    Class 2 Digital Signature Certificates

    ReplyDelete

More Posts

FOLLOW