Главная страница О Web-студии Разработка сайтов Интернет-реклама CD-презентации 3D-графика Программное обеспечение
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создание сайтов. Авторы: Кузнецов М.В., Симдянов И.В. Головоломки на PHP для хакера (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры . Авторы: Кузнецов М.В., Симдянов И.В. PHP. Народные советы. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование: ступени карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Security & Cracking Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
Консультации от известных специалистов и авторов многих книг

Информационный портал
«SoftTime-INFO»


Примеры скриптов на PHP

Вернуться в примеры php скриптов

Класс для генерации CSV-файла на PHP


CSV-файлы очень популярны для представления электронных таблиц - файл является текстовым, ячейки таблицы в нём разделяются точкой с запятой. Представляем вашему вниманию класс, разработанный Кондраковым Александром Владимировичем, позволяющий генерировать CSV-файл из массива PHP.

Генерация CSV-файла

<?php
class CsvReader
{ 
    private $file;
    private $delimiter; 
    private $length;
    private $handle; 
    private $csvArray; 
    
    public function __construct($file$delimiter=";"$length 8000) 
    { 
       $this->file $file; 
       $this->length $length; 
       $this->delimiter $delimiter; 
       $this->FileOpen(); 
    } 
    public function __destruct() 
    { 
       $this->FileClose(); 
    } 
    public function GetCsv()
    {
        $this->SetCsv();
        if(is_array($this->csvArray)) 
         return $this->csvArray;
    }
    
    private function SetCsv()
    {
        if($this->GetSize())
        {
            while (($data = @fgetcsv($this->handle$this->length$this->delimiter)) !== FALSE)
            {
                $this->csvArray[] = $data;
            }
        }
    }
    private function FileOpen()
    {
        $this->handle=($this->IsFile())?fopen($this->file'r'):null;
    }
    private function FileClose()
    {
        if($this->handle) 
         @fclose($this->handle); 
    }
    private function GetSize()
    {
        if($this->IsFile())
            return (filesize($this->file));
        else
            return false;
    }
    private function IsFile()
    {
        if(is_file($this->file) && file_exists($this->file))
            return true;
        else
            return false;
    }
} 

class CsvWriter
{
    private $file;
    private $delimiter;
    private $array;
    private $handle;
    public function __construct($file$array$delimiter=";")
    {
        $this->file $file; 
        $this->array $array; 
        $this->delimiter $delimiter;
        $this->FileOpen();
    }
    public function __destruct()
    {
        $this->FileClose();
    }
    public function GetCsv()
    {
        $this->SetCsv();
    }
    
    private function IsWritable()
    {
        if(is_writable($this->file))
            return true;
        else
            return false;
    }
    private function SetCsv() 
    { 
      if($this->IsWritable())
      {
          $content ""; 
          foreach($this->array as $ar) 
          { 
             $content .= implode($this->delimiter$ar);
             $content .= "\r\n"; 
          } 
          if (fwrite($this->handle$content) === FALSE) 
                 exit;
      }
    }
    private function FileOpen()
    {
        $this->handle=fopen($this->file'w+');
    }
    private function FileClose()
    {
        if($this->handle) 
         @fclose($this->handle); 
    } 
}
$array = array(array('1','1','1'), array('2','2','2'), array('3','3','3'));
$dd = new CsvWriter('test.txt',$array);
$dd->GetCsv();
?> 

 
  Rambler's Top100 Яндекс.Метрика Яндекс цитирования