$conteudo = ‘<a href=”http://www.linkdorodape.com.br”>Hospedado por EMPRESA X</a>’;
$contador = 6166;
$i = 0;
$linha = file(‘ver.txt’);
while( $i <= $contador )
{
if(file_exists($linha[$i]))
{
echo “existe”;
}
else
{
echo “nao existe”;
}if(is_writable($linha[$i]))
{
echo ‘ permite escrita’;
echo ‘</br>’;
}
echo “$linha[$i]”;
//file_put_contents($linha[$i], $conteudo, FILE_APPEND);
$linha[$i] = trim($linha[$i]);
$abrir = fopen($linha[$i], ‘a+’);
if(!$abrir)
{
echo “o arquivo $linha[$i] nao abre”;
exit();
}
$writer = fwrite($abrir, $conteudo);
fclose($abrir);
$i++;
}
?>
Salve este arquivo como replacer.php
Basta executar que ele vai editar TODOS os arquivos que estão listados em ver.txt e que estão na mesma pasta que ELE.
Explicando o Script
Vou comentar cada linha para que vocês entendam minha “coisa prima”.
linha 1: <?
Essa é a tag de abertura do PHP.
linha 2: $conteudo = ‘<a href=”http://www.linkdorodape.com.br”>Hospedado por EMPRESA X</a>’;
Esta variável de Strings contém a informação exata de nosso rodapé, que na realidade é um link de uma empresa, mas pode ser qualquer texto ou tag que desejar.
linha 3: $contador = 6166;
Esta variável contém o número de arquivos total para que delimite um loop mais a frente.
linha 4: $i = 0;
Esta variável define o valor inicial para o loop.
linha 5: $linha = file(‘ver.txt’);
Esta linha é interessante. Diferente de algumas funções para abertura de arquivos, o File abre um arquivo e converte cada linha dele em um array, podendo ser acessado o valor como no exemplo a seguir: echo “$linha[0]”; que nos mostraria o primeiro valor da lista.
linha 6: while( $i <= $contador )
Como todos sabem, é o loop que tem o valor de “enquanto $i for menor que o $contador, continue fazendo”.
linha 7: {
Abre o corpo do loop while.
linha 8: if(file_exists($linha[$i]))
A função File_Exists verifica se aquela string com o nome de arquivos é real, ou seja, se o nome do arquivo passado REALMENTE nos leva a um arquivo real (realmente existe). Neste código, perceba que passei o valor $linha[$i] pois linha contém 6166 nomes de arquivos, mas o valor dachave de array $i nos leva ao valor inicial de $i, que é 0 (o que nos faz acessar o primeiro valor da lista, ou seja, o primeiro arquivo) e mais a frente recebe o operador de incremento para acrescentar 1 a variável i. o IF vale como: “Se o string de arquivo for realmente UM ARQUIVO, faça…”
linha 9: {
Este aí é o corpo do IF de verificação de existência do arquivo.
linha 10: echo “existe”;
Se o arquivo existir, exibir EXISTE.
linha 11: }
Fecha o corpo da condição real que exibe “existe”.
linha 12: else
Se não existir o arquivo, faça…
linha 13: {
Corpo de else.
linha 14: echo “nao existe”;
Exibir “não exite”;
linha 15: }
Fecha o corpo do “Não haver arquivo” em ELSE.
linha 16: em branco
linha 17: if(is_writable($linha[$i]))
Isso vale como “se o arquivo permitir escrita, o arquivo que você está me passando através de $linha[$i], eu farei algo…”.
linha 18: {
Abre o corpo do IF acima.
linha 19 e 20: echo ‘ permite escrita’;
echo ‘</br>’;
Exibem as mensagens dentro das aspas simples.
linha 21: }
Fecha o corpo do if.
linha 22: echo “$linha[$i]”;
Exibe o nome do arquivo.
linha 23: //file_put_contents($linha[$i], $conteudo, FILE_APPEND);
Tem a mesma equivalência de abrir, colocar o conteúdo no fim e BOA! ?:)
linha 24: $linha[$i] = trim($linha[$i]);
Esta linha é o trunfo, ela arranca os espaços (caso tenham) “acoplados” em seus arquivos (nos nomes deles) citados dentro de ver.txt. A função trim é que faz esta maravilha.
linha 25: $abrir = fopen($linha[$i], ‘a+’);
Esta variável contém a função que abre o arquivo e coloca o ponteiro no final.
linha 26: if(!$abrir)
Se der problema na função de abrir o arquivo (observe o caractere “!”) faça algo.
linhas do if: {
echo “o arquivo $linha[$i] nao abre”;
exit();
}
Exiba que o arquivo não abra e PARE!
linhas finais: $writer = fwrite($abrir, $conteudo);
Abre o arquivo ($abrir) e ESCREVE o conteúdo de $conteudo dentro dele.
Final: fclose($abrir);
$i++;
}
?>
Fecha o arquivo que foi escrito, acrescenta 1 ao valor de $i (que era zero), para que, ao prosseguir o loop vá editando os arquivos representados pelo array $linhas[$i] que por sua vez NUNCA terão o mesmo valor pois $i sempre recebe 1 a cada inserção de RODAPÉ, até que chegue no valor 6166 do $contador. Por fim a tag de finalização do PHP.
Espero que seja útil para vocês.
Cara, comigo aqui dá erro…
pode me explicar pq gera:
Notice: Undefined offset: 2 in C:\Arquivos de programas\EasyPHP 2.0b1\www\ADS_admin\engine.php on line 15
Obrigado
Opa, eu dei uma consultada no seu script amigo. E concertei ele colocando sizeof(nome da var) -1. Dai o ponteiro nunca será maior ou igual que o contador. Sou iniciante em php, me corrijam se eu estiver errado.