ACC SHELL

Path : /srv/www/vhosts/bubbagump/classes/
File Upload :
Current File : /srv/www/vhosts/bubbagump/classes/csv_import.class.php

<?php
 /*   CSV Import class - Milan, Webrex (milan[and]webrex[dot]cz)
  *   verze: 0.5 RC
  *   datum: 24.03.2006
  *   
  *   zavislosti: zadne - globalni trida
  *   
  *   zmeny:      
  *      verze 0.1 alpha - prvni vydani()
  *      verze 0.5 RC - pridana metoda getSkipRows()      
  */

  /*
      $csv = new CSV_import("data.csv");
      $csv->skipRows(0);
      $csv->showTable();
  */

  class CSV_import
  {
    var $filename;
    var $skip;
    var $data;
    var $separator;
    
    //  CSV_import - konstruktor
    //  (nastavuje promenne + nacita obsah souboru do pole)
    function CSV_import($filename = "import.csv", $separator = ";")
    {
      $this->filename = $filename;
      $this->separator = $separator;
      $this->skip = 0;
      $this->data = file($this->filename);
    }
    
    // skipRows(num) - kolik radku ze zacatku CSV se ma preskocit
    // 1. radek v CSV se zadava jako nulty
    function skipRows($num)
    {
      $this->skip = $num;
    }
    
    
    // getSkipRows() - vrati pocet ignorovanych CSV radku od pocatku souboru
    function getSkipRows()
    {
      return $this->skip;
    }
    
    // getRecord(rowNum) - vrati pole hodnot z jednoho CSV radku
    function getRecord($rowNum)
    {
      return explode($this->separator,$this->data[$rowNum - 1]);
    }
    
    // getRecordSet() - vrati 2D pole se vsemi CSV zaznamy
    function getRecordSet()
    {
      for($i = 0; $i < count($this->data); $i++)
      {
        $recordset[$i][] = explode($this->separator,$this->data[$i]);        
      }
    }

    // getRowsCount() - vrati celkovy pocet radku CSV
    function getRowsCount()
    {
      return count($this->data);
    }
    
    // getColsCount() - vrati celkovy pocet sloupcu CSV
    function getColsCount()
    {
      $n = $this->skip + 1;
      $tmp = explode($this->separator,$this->data[$n]);
      
      return count($tmp);
    }
    
    // createSQLInsert($table) - vrati pole se SQL inserty
    function createSQLInsert($table)
    {
       $insert = array();
          
       for($i = $this->skip; $i < $this->getRowsCount(); $i++)
       {
          $val = explode($this->separator,$this->data[$i]);
          
          $insert[$i - $this->skip] = "INSERT INTO ".$table." VALUES('','";
          $insert[$i - $this->skip] .= implode("','",$val);
          $insert[$i - $this->skip] .= "')";
       }
          
       return $insert;
    }

    // createSQLInsertETrakce($table) - vrati pole se SQL inserty specialne pro projekt Elektro-Trakce s.r.o.
    function createSQLInsertETrakce()
    {
       $insert = array();
          
       for($i = $this->skip; $i < $this->getRowsCount(); $i++)
       {
          $val = explode($this->separator,$this->data[$i]);
          
          if(strlen($val[1])==0 && strlen($val[4])==0 && strlen($val[14])==0 && strlen($val[16]==0)) continue;

          $insert[$i - $this->skip] = "INSERT INTO trakceimportcz VALUES('','";
          $insert[$i - $this->skip] .= $val[1];
          $insert[$i - $this->skip] .= "','".$val[4];
          $insert[$i - $this->skip] .= "','".$val[9];
          $insert[$i - $this->skip] .= "','".$val[14];
          $insert[$i - $this->skip] .= "','".$val[16];
          $insert[$i - $this->skip] .= "')";
       }
          
//      for($j=0;$j< count($insert);$j++)
//        echo $insert[$j]."<br>";
       return $insert;
    }

    // showTable() - rychly vypis tabulky z dat;
    function showTable()
    {
      $y = $this->skip;
      $numcols = $this->getColsCount();
      $numrows = $this->getRowsCount();

      echo "<table cellspacing=\"1\" cellpadding\"1\" border=\"1\">";
      while($y<$numrows)
      {
         $x=0;
         echo "<tr>";
         while($x<$numcols)
         {
           $fields = explode($this->separator, $this->data[$y]);
           $fields = str_replace("\"", "", $fields);
           echo "<td>&nbsp;".$fields[$x]." </td>";
           $x++;
         }
         $y++;
         echo "</tr>";
       }
       echo "</table>";
    }
}

/*include "../_konstanty.php";
include "../pripojenidb.php";

$err = 0;

      $csv = new CSV_import();
      $csv->skipRows(5);
      $in = $csv->createSQLInsertETrakce();
    
      mysql_query("TRUNCATE TABLE trakceimportcz");
      
      for($i = 0; $i < count($in);$i++)
        if(!mysql_query($in[$i])) $err++;

      echo count($in)." / ".$err;
*/
?>

ACC SHELL 2018