Ir para conteúdo

POWERED BY:

Arquivado

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

Marcio Fernando

(PHPxTXT) Como gravar informação em uma linha específica do arquivo de

Recommended Posts

Salve, salve galera!!

 

Tenho um script que grava o IP do usuário em um arquivo TXT funcionando perfeitamente, mas surgiu a necessidade de gravar o IP desse usuário na linha 20 de um arquivo de TXT que contém várias de linhas com informações de IP.

 

Este é o código que estou utilizando pra gravar o IP no arquivo TXT.

 

<?$arq = "ip.txt$ip = $_SERVER['REMOTE_ADDR'];$data = date("d/m/Y H:i");$arq = fopen($arq,"a");if (!$arq) {echo "Erro encontrado";exit;}if (fwrite($arq,"\n".$ip."\n#".$data."\n")) {echo "Ativado com sucesso";exit;}?>

Só preciso colocar uma instrução que faça com que essa gravação seja na linha 20 do arquivo IP.TXT. E é essa instrução que não tenho idéia de como seja.

Pode ser até um comando em Linux que eu faço as adaptações aqui.

 

Me ajudem nessa empreitada.

Abraços a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que a única forma seja reescrever o arquivo inteiro, pois não me recordo de uma função que abra um arquivo e coloque o ponteiro de escrita em uma linha específica.

 

Você pode usar file() para colocar cada linha do arquivo numa chave de array. A linha 20 será o índice 19. Após fazer a alteração, transforme o array em string e salve-a no arquivo novamente.

 

Abraços,

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal achei o código que faz isso em Linux.

 

sed -i '20s/^/texto adicionado/' ip.txt
Onde 20s é o número da linha a ser adicionado o texto.

 

A dúvida agora é como inserir esse código ao script, com tantas apas nessa linha de comando não tem dado certo.

 

Exemplo: $inserir = 'sed -i '20s/^/texto adicionado/' ip.txt'

--------------------->aspa->aspa--------------------->aspa->aspa

 

Gostaria de colocar também uma variável onde está IP.TXT já que no início do texto já tem uma menção a esse arquivo.

 

Testei de inúmeras maneiras sem sucesso

 

Só me resta apelar para o conhecimento de vocês.

 

Abraços.

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.