我正在使用这个类:
<?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>";
}
}
导出csv文件。
这是我的旋转文件:
<?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();
?>
我的记忆力有问题:
Fatal error: Allowed memory size of 524288000 bytes exhausted (tried to allocate 262144 bytes) in .../program.class.php on line 42
我已经看到了一些能够使用此命令编辑php内存的解决方案:
ini_set("memory_limit","500M");
但它不能解决问题,并使我的服务器超载。
有人知道如何在不重载的情况下导出csv文件吗?
或者我的程序里有什么问题?
对不起我的英语。
谢谢你
最佳答案
看看postgresqlcopy命令。它可以选择直接输出CSV。