Skip to content
World Wide Web Server edited this page Jul 4, 2012 · 11 revisions

Category:Helper::Community | Category:Helper::CSV

[h3]Excel CSV helper for CodeIgniter[/h3]

[url=http://maestric.com/en/doc/php/codeigniter_csv]Usage examples[/url]

[code]<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

// ------------------------------------------------------------------------

/**

// ------------------------------------------------------------------------

/**

  • Array to CSV

  • download == "" -> return CSV string

  • download == "toto.csv" -> download file toto.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&#40;'php://output', 'w'&#41; 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 */[/code]

Clone this wiki locally