gpt4 book ai didi

php - 使用 PHP 和 Postgresql 导出 CSV

转载 作者:行者123 更新时间:2023-11-29 12:21:24 24 4
gpt4 key购买 nike

我正在使用这个类:

<?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 文件?或者我的程序有什么问题?

对不起我的英语。

谢谢

最佳答案

看看postgresql copy命令。它具有直接输出 CSV 的选项。

关于php - 使用 PHP 和 Postgresql 导出 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21120718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com