Foros del Web » Programando para Internet » PHP »

borrar una linea de un fichero

Estas en el tema de borrar una linea de un fichero en el foro de PHP en Foros del Web. Hola!!Quería pedir ayuda para borrar una linea seleccionada de un fichero. Tengo una lista de preguntas y quiero que al seleccionar una pregunta y al ...
  #1 (permalink)  
Antiguo 28/05/2008, 15:20
 
Fecha de Ingreso: mayo-2008
Mensajes: 3
Antigüedad: 15 años, 10 meses
Puntos: 0
borrar una linea de un fichero

Hola!!Quería pedir ayuda para borrar una linea seleccionada de un fichero.
Tengo una lista de preguntas y quiero que al seleccionar una pregunta y al pulsar el boton de borrar me elimine la pregunta.Para ello tengo que crear un fichero auxiliar que me copie las lineas menos la que quiero borrar.

Os dejo el codigo que me muestra las preguntas:

<?$gestor = @fopen("./preguntas.txt", "r");
if ($gestor)
{
echo"<ol>";
while (!feof($gestor))
{
$bufer = fgets($gestor, 4096);
$contador = 1;
echo "<li> <input type=\"radio\" name=\"pregunta\" value=\"$contador\" />
$bufer <br>\n </li>";
$contador = $contador+1;
}
fclose ($gestor);
echo"</ol>";
}

?>
<p><input type="submit" value="Borrar" id="boton" /> </p>


Gracias.Un saludo!!
  #2 (permalink)  
Antiguo 28/05/2008, 15:23
Avatar de eft0  
Fecha de Ingreso: junio-2003
Ubicación: Santiago - Chile
Mensajes: 635
Antigüedad: 20 años, 10 meses
Puntos: 9
Respuesta: borrar una linea de un fichero

Google it's your best friend:

Código PHP:
<?php

// this function strips a specific line from a file
// if no linenumber is specified, last line is stripped
// if a line is stripped, functions returns True else false
//
// e.g.
// cutline('foo.txt'); // strip last line
// cutline('foo.txt',1); // strip first line

/* its probably a good idea to allow access to this file via a password. otherwise, anyone that knows its in your directory could delete lines of text from the file you specify below! */

function cutline($filename,$line_no=-1) {

$strip_return=FALSE;

$data=file($filename);
$pipe=fopen($filename,'w');
$size=count($data);

if(
$line_no==-1$skip=$size-1;
else 
$skip=$line_no-1;

for(
$line=0;$line<$size;$line++)
if(
$line!=$skip)
fputs($pipe,$data[$line]);
else
$strip_return=TRUE;

return 
$strip_return;
}

cutline('foo.txt',6); // deletes line 6 in foo.txt
}
?>
__________________
eft0's stuff! - http://estebanfernandez.net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:37.