Adicionar caracter em um txt ... PHP

Status
Fechado a novas mensagens.

ricardoaux

Power Member
Preciso de um script PHP que permita comentar uma linha de um ficheiro (adicionar # ao inicio).
A linha sobre a qual deve actuar chega por post da variável $apaga.

a
b
c
d
e

Por exemplo o utilizador quer comentar a linha 3 (array 2) ou seja quer deixar a linha assim # c

Agradecia a ajuda
 
Tudo sugestões válidas dadas até agora.

PHP:
$h = @fopen("ficheiro.txt", "r");
$i=1;
if ($h) {
while (!feof($h)) {
$cnt = fgets($h, 4096);
if ($i==$apaga) //se for algo numérico que tu recebas
  $texto .= "#".$cnt;
else
  $texto .= $cnt;
$i++;
}
}
No fim tens o ficheiro na variavel $texto, comentado onde é suposto, julgo, não testei.

 
Última edição pelo moderador:
Bem, obrigaste-me a colar isto num .php e testar, and guess what? Funcou.

E se não percebeste o que eu disse, esse exemplo é caso o $apaga seja um número com a linha (1,2,3)

Se quiseres comparar texto, faz if ($cnt==$apaga)
 
Então é copiar colar o exemplo de código que te dei, sem esquecer da linha que não pus porque dá bug, que está no fim e é suposto ser no inicio.

Testado e comprovado.
 
ou eu estou a compreender mal o teu código ... ou não sei ... no meu não adiciona o #

este é o código que o vai chamar a função apagar (que neste caso quero adicionar # em vez de apagar)

<?php
$file=file('ficheiro.txt');
$a=0;
foreach ($file as $line)
{
echo $file[$a];
echo "<form action=apagar.php method=post>";
echo "<input type='hidden' name='apaga' size='20' value=$a>";
echo "<input type=submit value=Apagar>";
echo "</form>";
echo "<br><br>";
$a=$a+1;
}
?>
 
<html>
<body>

<?php

$apaga = $_POST['apaga'];

$file = 'ficheiro.txt';
$data=file($file);
$n = count($data);
$i=0;

for ($i=0; $i <= $n; $i++)
{
if ($i == $apaga)
{
$data[$apaga] = '# '.$data[$apaga];

echo $data[$i]; // só para testar
}
else
{
echo $data[$i]; // só para testar
}
}

echo "Apagou com sucesso";
echo "<form action=principal.php method=post>";
echo "<input type=submit value=Voltar></form>";

?>

</body>
</html>


Este código apenas adiciona o # na linha desejada mas não guarda no ficheiro txt, nem nada
 
Última edição:
resolvido!

tenho outra dúvida ... se tiver por exemplo:


TXT


a
b

c

d
e
f

Como faço para não apresentar os espaços graficamente (ou seja na página), mas manter os espaços no ficheiro txt? ... n sei se me compreenderam?

página

a
b
c
d
e
f
 
Status
Fechado a novas mensagens.
Back
Topo