Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

paulo_felisbino

[Resolvido] Gravar arquivo txt com quebra de linha

Recommended Posts

Olá,

 

Estou tentando gravar uma string em um arquivo txt com quebra de linha, mas não estou conseguindo. Eu tentei acrescentar '\n' no fim da string, mas não funcionou.

 

Alguém pode me ajudar?

 

Abraços,

Paulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste seu script, por gentileza.

Existem diversas formas de se fazer isso, porém deve-se levar em conta o sistema operacional que está executando a função. Tente fazer a quebra de linha com "\r\n", com aspas duplas.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nada Disso ..

PHP_EOL

 

Exato.

A vantagem da constante é independer do SO.

Se for Linux (ou outros Unix-Like), bastaria "\n".

Porém o Windows é maluco (e meio besta) e precisa de dois caracteres: "\r\n"

 

A constante evita ter que fazer um IF para detectar SO

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim ?

 

$http_agent = $_SERVER["HTTP_USER_AGENT"];
$system = "Não Reconhecido";
if(ereg("Windows",$http_agent)) {
       $system = "Windows";
       $quebra = "PHP_EOL";
       $quebra2 = "\r\n";


}
if(ereg("X11", $http_agent)) { 
       $system = "Unix"; 
       $quebra = "\n";



} 

 

na hora de dar a quebra , so concatenar ex:

 

$conteudo = "";
$conteudo .= "seuconteudo".$quebra;
$conteudo .= "outra linha".$quebra;

$arquivo = "a_ser_escrito.txt";
$f = fopen($arquivo, 'r+'); 
fwrite($f, $conteudo); 
fclose($f);

 

não sei se ta certo não rsrs ..

testa ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não não, amigo. O uso da constante PHP_EOL é justamente para tornar desnecessária toda essa verificação de OS. Somente isso bastaria:

 

$conteudo = "";
$conteudo .= "seuconteudo".PHP_EOL;
$conteudo .= "outra linha".PHP_EOL;

$arquivo = 'a_ser_escrito.txt';
$f = fopen($arquivo, 'r+'); 
fwrite($f, $conteudo); 
fclose($f);

 

Eu, particularmente, tenho maior costume de trabalhar com \r e \n, uma vez que PHP_EOL não é utilizado em expressões regulares, mas é sim uma alternativa muito eficiente.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Testei com essa constante PHP_EOL e o script parou de funcionar (a gravação no arquivo não foi feita)....

 

$temp = 'um texto';
$temp .= PHP_EOL;

$arqTemp = fopen('log_atividades/arquivo.txt', "a");
$escreve = fwrite($arqTemp, $temp);
fclose($arqTemp);

 

Erro meu, a gravação foi feita sim e funcionou... é que esse arquivo que foi gravado, é aberto através de um link e vizualizado no navegador. No firefox não aparece nada (depois que eu usei o PHP_EOL) e no IE aparece corretamente).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.