fwrite in a given PHP line

1

I want to write a certain code on a particular line of a file with PHP.

<?php
$arquivo_origem = "client.php";
$arquivo_destino = "copiado.php";

if (copy($arquivo_origem, $arquivo_destino)){
    echo "Sucesso!";

}


$teste = "Eu sei";

$handle = fopen( $arquivo_destino, 'a+' );

$ler = fwrite( $handle, $teste );

// Fecha o arquivo
fclose($handle);


?>

I wanted to write my $ test variable on line 17 of my $ target_file.

In case I do?

    
asked by anonymous 31.03.2015 / 01:26

2 answers

1

Complementing @Adir Kuhn's response, if you need to insert in the middle and not replace, you can do this:

$arquivo = '/dir/ate/arquivo.ext';
$numero_linha = 17;
$conteudo_linha = 'teste';

$linhas = file($arquivo); // lê o arquivo na forma de array (cada linha é um elemento)
$final_array = array_splice($linhas, $numero_linha-1); // corta array ($linhas fica com a primeira parte; array_splice retorna a parte cortada)
$linhas[] = $conteudo_linha . "\n"; // adiciona após a posição cortada
$linhas = array_merge($linhas, $final_array); // junta novamente
file_put_contents($arquivo, $linhas);
    
31.03.2015 / 13:58
1

You can do something like this:

<?php

$file = $arquivo_destino;
$line_looking = 16; //lembre que a contagem começa em 0

$lines = file($file, FILE_IGNORE_NEW_LINES);
$lines[$line_looking] = 'Linha substituida';
file_put_contents($file, implode("\n", $lines));

An example - > link

    
31.03.2015 / 13:34