35 lines
857 B
PHP
35 lines
857 B
PHP
<?php
|
|
namespace nulib\file\csv;
|
|
|
|
use nulib\file\tab\AbstractBuilder;
|
|
use nulib\file\tab\TAbstractBuilder;
|
|
use nulib\web\http;
|
|
|
|
/**
|
|
* Class CsvBuilder: construction d'un fichier CSV, pour envoi à l'utilisateur
|
|
*/
|
|
class CsvBuilder extends AbstractBuilder {
|
|
use TAbstractBuilder;
|
|
|
|
function __construct(?string $output, ?array $params=null) {
|
|
$csvFlavour = $params["csv_flavour"] ?? null;
|
|
$this->csvFlavour = csv_flavours::verifix($csvFlavour);
|
|
parent::__construct($output, $params);
|
|
}
|
|
|
|
protected function _write(array $row, ?array $colStyles =null, ?array $rowStyle=null): void {
|
|
$this->fputcsv($row);
|
|
}
|
|
|
|
function _sendContentType(): void {
|
|
http::content_type("text/csv");
|
|
}
|
|
|
|
protected function _checkOk(): bool {
|
|
$size = $this->ftell();
|
|
if ($size === 0) return false;
|
|
$this->rewind();
|
|
return true;
|
|
}
|
|
}
|