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
No comments:
Post a Comment