To perform the substitution you can use str_replace
or preg_replace
.
In this case just change to:
<?php
//...
if(preg_match("/arquivo.txt/",$le)){
$conteudo = str_replace("arquivo.txt", "novo_arquivo.txt", $le);
// Alternativa: preg_replace("/\barquivo.txt\b/", "novo_arquivo.txt", $le);
// Substitui o arquivo.txt por novo_arquivo.txt
fwrite($aq, $conteudo);
// Escreve o conteúdo editado.
}
//..
?>
Ideal solution:
Quit fopen
, it will be easier and you will not have as much performance loss.
<?php
//...
foreach ($arquivos as $caminho){
$conteudoArquivo = file_get_contents($caminho);
// Isso irá pegar todo o conteudo do arquivo
if(preg_match("/arquivo.txt/", $conteudoArquivo)){
// Se existir arquivo.txt
$conteudoEditado = str_replace("arquivo.txt", "novo_arquivo.txt", $conteudoArquivo);
// Novo $conteudoEditado terá a alteração
file_put_contents($caminho, $conteudoEditado);
// Salva as alterações
}
}
//..
?>
Important (function feof()
):
There are some cases where feof()
can create an infinite loop, there are even examples in the PHP documentation, which can be accessed by clicking here .