I am using this class:
<?php
class csv{
private $separador;
private $cabecalho;
private $dados;
private $path;
private $arquivo;
public function csv($separador=null, $cabecalho=null, $dados="", $path="", $arquivo="csv"){
#seta as propriedades
$this->separador = $separador;
$this->cabecalho = $cabecalho;
$this->dados = $dados;
$this->path = $path;
$this->arquivo = $arquivo;
}
public function salvar(){
#gera string de cabeçalho
$colunas = "";
foreach($this->cabecalho as $coluna){
if ($colunas == ""){
$colunas .= $coluna;
} else {
$colunas .= $this->separador.$coluna;
}
}
$saida[] = $colunas;
#gera string do corpo do arquivo
foreach ($this->dados as $linha){
#pega as variaveis do array
$colunasDados = "";
foreach($linha as $coluna){
if ($colunasDados == ""){
$colunasDados .= $coluna;
} else {
$colunasDados .= $this->separador.$coluna;
}
}
$saida[] = $colunasDados;
}
#verifica se alguma linha foi inserida
if(count($saida)>1){
#monta o corpo do CSV
$corpo = implode("\n", $saida);
#abre um arquivo para escrita, se o arquivo não existir ele tenta criar
$fp = fopen ($this->path.$this->arquivo.".csv", "w");// W = sobrescreve
if($fp <> NULL){
#escreve no arquivo
fwrite($fp, $corpo);
#fecha o arquivo
fclose($fp);
#retorno do sistema
echo "<p>Pronto</p>";
}
else {
echo "<p>Verifique se a pasta ou o arquivo tem permissão para escrita!</p>";
}
}
else {
echo "<p>Sem linhas para importação!</p>";
}
}
to export the csv file.
And this is mine file that rotates:
<?php
#chama classe
include("program.class.php");
$objeto = new csv();
#Executa os selects
$tijuca = $objeto->selecionaTijuca();
#gera cabeçalho
$cabecalho = array("mes","ano","titulobanco","matricula");
#cria instancia de objeto da classe
$tijuca = new CSV (";", $cabecalho, $tijuca,"pasta/Nova/", "cotas");
$tijuca->salvar();
?>
I am having this problem of memory:
Fatal error: Allowed memory size of 524288000 bytes exhausted (tried to allocate 262144 bytes) in .../program.class.php on line 42
and I've seen some solutions who have the ability to edit the php memory with this command:
ini_set("memory_limit","500M");
But it does not solve, and overloads my server. Anyone know how do I export a csv file without overloading? or have something in my program what is wrong?
Sorry for my english.
Thank you