Exemplo n.º 1
0
 public function execute()
 {
     $writer = new CsvWriter($this->getCsvWriterOptions());
     $writer->createTempStream();
     if ($this->getHeader()) {
         $writer->writeRow($this->getHeader());
     }
     $results = $this->query->find();
     foreach ($results as $result) {
         $writer->writeRow($this->getRow($result));
     }
     $this->content = $writer->getFileContent();
     $writer->close();
     return $this;
 }
Exemplo n.º 2
0
 public function testWritingTempStream()
 {
     $csvArray = array(array('nom', 'prénom', 'age'), array('Martin', 'Durand', '28'), array('Alain', 'Richard', '36'));
     $expected = 'nom,prénom,age' . "\n" . 'Martin,Durand,28' . "\n" . 'Alain,Richard,36' . "\n";
     $writer = new CsvWriter(array('delimiter' => ',', 'enclosure' => '"', 'encoding' => 'UTF-8', 'eol' => "\n", 'escape' => "\\", 'enclosing_mode' => Dialect::ENCLOSING_MINIMAL, 'escape_double' => true));
     $this->assertFalse($writer->isFileOpened());
     $this->assertInstanceOf('CSanquer\\ColibriCsv\\CsvWriter', $writer->createTempStream());
     $this->assertTrue($writer->isFileOpened());
     $this->assertInternalType('resource', $writer->getFileHandler());
     $this->assertInstanceOf('CSanquer\\ColibriCsv\\CsvWriter', $writer->writeRows($csvArray));
     $this->assertEquals($expected, $writer->getFileContent());
     $this->assertInstanceOf('CSanquer\\ColibriCsv\\CsvWriter', $writer->close());
 }
Exemplo n.º 3
0
 /**
  * @param $datas
  */
 public function getCsv($data)
 {
     $filePath = "../" . $this->filename . '.csv';
     $writer = new CsvWriter(array('delimiter' => ';', 'enclosure' => '"', 'encoding' => 'CP1252', 'eol' => "\r\n", 'escape' => "\\", 'bom' => false, 'translit' => null, 'first_row_header' => false, 'trim' => false));
     $stream = fopen($filePath, 'wb');
     $writer->open($stream);
     $array = json_decode(json_encode($data), true);
     $writer->writeRows($array);
     $writer->getFileContent();
     $writer->close();
     $maxRead = 1 * 2048 * 2048;
     $fileSize = filesize($filePath);
     $fh = fopen($filePath, 'r');
     $read = 0;
     header('Content-Type: application/octet-stream');
     header('Content-Disposition: attachment; filename="' . str_replace('../', '', $this->filename) . ".csv" . '"');
     while (!feof($fh)) {
         echo fread($fh, $maxRead);
     }
     exit;
 }