Share Pastebin
Guest
Public paste!

CSVMaker.php

By: a guest | May 2nd, 2010 | Syntax: PHP | Size: 1.84 KB | Hits: 176 | Expires: Never
Copy text to clipboard
  1. <?php
  2.  
  3. /**
  4.  * @author michaelhartmayer[at]gmail.com
  5.  * @copyright 2010
  6.  */
  7.  
  8.     class CSVMaker {
  9.        
  10.         public $csvDelimeter    = "\t";
  11.         public $csvLine         = "\r\n";
  12.         public $csvCapsule      = '"';
  13.        
  14.         private $csvTemplate    = array();
  15.         private $csvCollection  = array();
  16.         private $csvDocument;
  17.        
  18.         public function createTemplate($arr=array()) {
  19.             $this->csvTemplate = $arr;
  20.         }//end:function
  21.        
  22.         public function addEntry($arr=array()) {
  23.             foreach($arr as $Index=>$Value) {
  24.                 $arr[$Index] = $this->csvCapsule.str_replace($this->csvCapsule,$this->csvCapsule.$this->csvCapsule,$Value).$this->csvCapsule;
  25.             }//end:foreach
  26.             $this->csvCollection[] = $arr;
  27.         }//end:function
  28.        
  29.         public function buildDoc() {
  30.             $docLine = '';
  31.             $csvTemplate = $this->csvTemplate;
  32.            
  33.             // Add Header
  34.             foreach($csvTemplate as $Index=>$Title) {
  35.                 $csvTemplate[$Index] = $this->csvCapsule.str_replace($this->csvCapsule,$this->csvCapsule.$this->csvCapsule,$Title).$this->csvCapsule;
  36.             }//end:foreach
  37.             $docLine.=implode($this->csvDelimeter,$csvTemplate).$this->csvLine;
  38.            
  39.             // Add CSV Information
  40.             foreach($this->csvCollection as $csvCollectionItem) {
  41.                 $collectionDeposit = array();
  42.                 foreach($csvTemplate as $Index=>$Title) {
  43.                     $collectionDeposit[] = $csvCollectionItem[$Index];
  44.                 }//end:foreach
  45.                
  46.                 $docLine.=implode($this->csvDelimeter,$collectionDeposit).$this->csvLine;
  47.             }//end:foreach
  48.            
  49.             return $docLine;
  50.         }//end:function
  51.        
  52.     }//end:class
  53. ?>