Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, estou com uma dificuldade de escrever em um arquivo com fwrite().
Tenho o seguinte cenário:
$arquivo_text = "Autor;Titulo do Trabalho;Tipo de Trabalho;Departamento;Orientador;Coorientador;Ano;Assuntos\n";
while ($row = mysql_fetch_array($resultado)) {
$arquivo_text .= $row[1]." ".$row[2].";";
$arquivo_text .= $row[3].";";
$arquivo_text .= $row[5].";";
$arquivo_text .= $row[6].";";
$arquivo_text .= $row[7]." ".$row[8].";";
$arquivo_text .= $row[9]." ".$row[10].";";
$arquivo_text .= $row[11].";";
$arquivo_text .= "1- ".$row[13]." 2- ".$row[14]." 3- ".$row[15]." 4- ".$row[16]." 5- ".$row[17].PHP_EOL;
$count++;
}
$arquivo = 'relatorio';
$extensao = '.csv';
$fp= fopen($arquivo.$extensao, "w+");
echo fwrite($fp, $arquivo_text);
fclose($fp);
Neste arquivo ele insere apenas a primeira linha.
"Autor;Titulo do Trabalho;Tipo de Trabalho;Departamento;Orientador;Coorientador;Ano;Assuntos"
E se eu colocar algo do tipo
$arquivo_text .= "Teste1;Teste2;Teste3;Teste4\n";
fora (depois ou antes) do while ele insere corretamente no arquivo.
Alguém já sabe o porque isso acontece?
[]s.
O problema é que não está gravando nada no arquivo que está dentro do while, independentemente da forma.
O que eu fiz aqui foi trocar de navegador e funcionou. Outras pessoas testaram e funcionou também.
Já limpei cache e tudo mais e mesmo assim não funcionou.
Mas sei que o problema não está no código e sim no navegador, mas não sei muito bem o que pode ser.
:huh: Também não, no meu caso, uso terminal para testes é uma boa prática recomendo!
Para gravar corretamente todas linhas, a função fwrite tem que estar dentro do laço.
while ( ... ) {
....
Obs.: Não é necessário usar echo, feche o ponteiro depois do loop, restante pode ir acima do while