Export to csv : CI Helper File


This is another helper file by Jérôme Jaglale. I used this helper file to export my data into csv files in a codeigniter project: Registraion System. Its preety good and easy than to export to .xls file. CSV files are good if you are more flexible to use. You might like to use it. To know more about csv file please visit the click here.
The helper file is embeded as follows:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
// ------------------------------------------------------------------------
/**
* CSV Helpers
* Inspiration from PHP Cookbook by David Sklar and Adam Trachtenberg
*
* @author Jérôme Jaglale
* @link http://maestric.com/en/doc/php/codeigniter_csv
*/
// ------------------------------------------------------------------------
//-------------------------------------------
/*
Documentation:
==============
1. Array to csv file
array_to_csv($ArrayVariable,'file.csv')
2. Query to csv file
echo query_to_csv($query,'stalls.csv');
$query = $this->db->get('stall_contact');
$this->load->helper('csv');
3. Query to download file
$query = $this->db->get('stall_contact');
$this->load->helper('csv');
query_to_csv($query,TRUE,'bookings.csv');
*/
if ( ! function_exists('array_to_csv'))
{
function array_to_csv($array, $download = "")
{
if ($download != "")
{
header('Content-Type: application/csv');
header('Content-Disposition: attachement; filename="' . $download . '"');
}
ob_start();
$f = fopen('php://output', 'w') or show_error("Can't open php://output");
$n = 0;
foreach ($array as $line)
{
$n++;
if ( ! fputcsv($f, $line))
{
show_error("Can't write line $n: $line");
}
}
fclose($f) or show_error("Can't close php://output");
$str = ob_get_contents();
ob_end_clean();
if ($download == "")
{
return $str;
}
else
{
echo $str;
}
}
}
// ------------------------------------------------------------------------
/**
* Query to CSV
*
* download == "" -> return CSV string
* download == "toto.csv" -> download file toto.csv
*/
if ( ! function_exists('query_to_csv'))
{
function query_to_csv($query, $headers = TRUE, $download = "")
{
if ( ! is_object($query) OR ! method_exists($query, 'list_fields'))
{
show_error('invalid query');
}
$array = array();
if ($headers)
{
$line = array();
foreach ($query->list_fields() as $name)
{
$line[] = $name;
}
$array[] = $line;
}
foreach ($query->result_array() as $row)
{
$line = array();
foreach ($row as $item)
{
$line[] = $item;
}
$array[] = $line;
}
echo array_to_csv($array, $download);
}
}
/* End of file csv_helper.php */
/* Location: ./system/helpers/csv_helper.php */
view raw csv_helper.php hosted with ❤ by GitHub

Comments

Post a Comment

Popular posts from this blog

Automate file upload in Selenium IDE

How To Install and Configure Nextcloud

Bruteforce a router to hack admin password using Hydra