CSV import

Ako imate peh da morate raditi redovan import podataka iz jedne baze, tko zna kako posložene u svoju (urednu!) bazu, ovakva skripta je korisna. Pronašao sam je na http://www.phpclasses.org/ i uredno obavlja svoj posao. Ova klasa podešena je da prebacuje podatke u neku bazu, a možete koristiti podatke i na neki drugačiji način, ispis na ekran ili sl.

Inicijalizacija objekta može biti na slijedeći način:

read_csv_run("foo.csv");

/ rtrim crap at the end of the string 
$tmp = explode($delimiter,rtrim($value)); 
// parse $in_quote = false; 
$arr = array(); 
foreach ( $tmp as $key => $value ) { 
  if ( $in_quote ) { 
    if ( $this->read_csv_has_quote($value,$enclosure) ) { 
      $in_quote = false; 
      $value = substr_replace($value,'',-1,1); } 
     $key = (count($arr)-1); $arr[$key] .= $delimiter.$value; // continue last array element } 
    else { if ( $this->read_csv_has_quote($value,$enclosure) ) { 
       $in_quote = true; 
       $value = substr_replace($value,'',0,1); } 
   else if ( substr($value,0,1) == $enclosure AND substr($value,-1,1) == $enclosure ) { 
   // string is quoted, remove quotes 
   $value = substr_replace($value,'',0,1); 
   // start 
   $value = substr_replace($value,'',-1,1); 
   // end } 
$arr[] = $value; 
// append to array } } 
foreach ( $arr as $key ) { 
    $arr[$key] = str_replace($enclosure.$enclosure,$enclosure,$value); } 
// append to array 
$csv[] = $arr; } 
// end foreach 

for($i = 0; $i < count($csv); $i++) {
     $value = $csv[$i]; 
    $sql = mysqli_query($db, "INSERT INTO table (col1, col2, col3) VALUES ( '$value[0]', '$value[1]', '$value[2]') "); } } }             // end func 

function read_csv_has_quote ($str="",$enc="") { $c = substr_count($str,$enc); if ( stristr(($c/2),".") ) { return true; } } 

} // end class