Pessoal,
me corrijam se eu entendi errado:
Como exemplo tomarei o seguinte trecho de código:
<?php
//...
while ($campos = mysql_fetch_assoc($result)) {
$linhaCSV = implode(";", $campos);
fwrite($fp, $campos);
}
?>
No exemplo acima independente de quantas linhas de resultado o SQL
trazer, a gravação do arquivo é por meio de stream de texto, ou seja,
a cada iteração o arquivo no HD é escrito/atualizado e o array sempre
continua do mesmo tamanho.
No ambiente WEB é importante ressaltar que o tempo de execução da
consulta SQL, não pode exceder o tempo limite de execução do script
PHP, que é configurado através da diretiva max_execution_time no
php.ini. Se não o arquivo não será criado por completo.
Trabalho com arquivos de texto de 6GB provenientes de Log de proxy.
Utilizo PHP para gerar algumas estatísticas de acesso, e não tenho
problemas com limite de memória.
Celso,
talvez seja interessante passar para o pessoal o trecho do código
correspondente a esse problema para melhor entendimento da causa do
erro.
Obrigado, t+
On Mar 24, 10:38 pm, Vinícius Daniel Antunes Oliveira
<
viniciusdan...@gmail.com> wrote:
> A ideia de fazer de pouco em pouco é o que vai te ajudar realmente. Tambem
> evite coisas como ficar concatenando a string para depois gravar:
>
> for ($i = 0; i < 90000;++i)
> {
> $t *+= *"32;jose;13/1/1978";}
>
> fwrite($file, $t);
>
> faça direto dentro do seu loop e use fflush()
>
> for ($i = 0; i < 90000;++i)
> {
> $t = "32;jose;13/1/1978";
> fwrite($file, $t);
> *fflush($file);*
> }
>
> 2009/3/24 Celso <
cels...@gmail.com>