Estou fazendo uma pagina para controlar o arquivo squid.sites do linux.... preciso saber como faço para colocar o caracter # no inicio de uma linha.... ou apagar uma determinada linha... o formato do arquivo é o seguinte.... (para quem não sabe...)
//------------------------
site1.com.br
site2.com.br
site3.com.br
site4.com.br
site5.com.br
//------------------------
entaum se eu quiser tirar um site deste arquivo, é só colocar uma # no ininicio de uma determinada linha... ou apagar a linha.... alguém poderia me ajudar a fazer isto.... já fiz o seguinte arquivo mais não funcionou legal... em vez de acrescentar o caracter '#' ele cadastra outra linha no final....
//-----------------
antes de executar esta pagina... eu listo todos as linhas do arquivo squid.conf numa pagina e uso um contador para poder saber qual a linha que esta o site q quero apagar...
e passo esse numero atraves da variavel $nlinha;
ai no deletarsites.php eu faço uma nova contagem apartir de zero e consigo identificar qual a linha esta o site....beleza.. mas na hora de salvar da pau.... vejam ai....
//---------deletar sites-----------------------
$arq="squid.sites"; //arquivo a ser aberto
exec("sudo -u root chmod 777 $arq");// permissao de leitura e escrita no arquivo
$arquivo=fopen($arq,"a+"); // abrir o arquivos
$cont=0; // contador para saber qual linha esta o site
while (!feof ($arquivo)) // enquanto não fim de arquivo
{
$buffer = fgets($arquivo, 4096); // lendo linha a linha
if($cont==$nlinha) // se a linha é igual a $nlinha
{
$num = "#$site"; //variavel recebe nome do site com # na frente
$string = ereg_replace("$site", $num, $buffer);//substituo a linha q tem o nome do site por o nome do site com # na frente para q o linux interprete como comentado depois....
fputs($arquivo,$buffer); // aqui ta o problema.... na hora de gravar ele salva uma nova linha no fim do arqivo em fez de substituir no a linha q esta lendo neste momento....
}
$cont++;
}
exec("sudo -u root chmod 644 $arq");// tirandopermissao de leitura e escrita no arquivo
fclose ($arquivo); // fechar arquivo
--------------------
se alguém souber como faço para substituir a linha certa do arqiuvo ...... me ajudem por favor.....
Pergunta
rbzorzato
Iai galera... minha duvida é o seguinte....
Estou fazendo uma pagina para controlar o arquivo squid.sites do linux.... preciso saber como faço para colocar o caracter # no inicio de uma linha.... ou apagar uma determinada linha... o formato do arquivo é o seguinte.... (para quem não sabe...)
//------------------------
site1.com.br
site2.com.br
site3.com.br
site4.com.br
site5.com.br
//------------------------
entaum se eu quiser tirar um site deste arquivo, é só colocar uma # no ininicio de uma determinada linha... ou apagar a linha.... alguém poderia me ajudar a fazer isto.... já fiz o seguinte arquivo mais não funcionou legal... em vez de acrescentar o caracter '#' ele cadastra outra linha no final....
//-----------------
antes de executar esta pagina... eu listo todos as linhas do arquivo squid.conf numa pagina e uso um contador para poder saber qual a linha que esta o site q quero apagar...
e passo esse numero atraves da variavel $nlinha;
ai no deletarsites.php eu faço uma nova contagem apartir de zero e consigo identificar qual a linha esta o site....beleza.. mas na hora de salvar da pau.... vejam ai....
//---------deletar sites-----------------------
$arq="squid.sites"; //arquivo a ser aberto
exec("sudo -u root chmod 777 $arq");// permissao de leitura e escrita no arquivo
$arquivo=fopen($arq,"a+"); // abrir o arquivos
$cont=0; // contador para saber qual linha esta o site
while (!feof ($arquivo)) // enquanto não fim de arquivo
{
$buffer = fgets($arquivo, 4096); // lendo linha a linha
if($cont==$nlinha) // se a linha é igual a $nlinha
{
$num = "#$site"; //variavel recebe nome do site com # na frente
$string = ereg_replace("$site", $num, $buffer);//substituo a linha q tem o nome do site por o nome do site com # na frente para q o linux interprete como comentado depois....
fputs($arquivo,$buffer); // aqui ta o problema.... na hora de gravar ele salva uma nova linha no fim do arqivo em fez de substituir no a linha q esta lendo neste momento....
}
$cont++;
}
exec("sudo -u root chmod 644 $arq");// tirandopermissao de leitura e escrita no arquivo
fclose ($arquivo); // fechar arquivo
--------------------
se alguém souber como faço para substituir a linha certa do arqiuvo ...... me ajudem por favor.....
talvez usando um fseek ... sei la...
desde já obrigado.....
ricardo bassan zorzato......
mandruvá .
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.