Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/06/2012, 12:11
eduardoHashil
 
Fecha de Ingreso: diciembre-2011
Mensajes: 11
Antigüedad: 12 años, 4 meses
Puntos: 0
Pregunta Borrar última línea de un .txt y que desaparezca.

Estimados expertos:

Antes que nada agradezco por tomarse el tiempo de leer este post. Sin mayores preámbulos voy al punto.

Tengo un archivo de texto al que quiero borrar la última línea y que ésta desaparezca, es decir, que haga un "trim".

Abro el archivo, lo recorro, cotejo si la línea coincide, la borro y reescribo el archivo. El problema viene si la línea es la última porque deja el espacio vacío y al momento de desplegar el archivo nuevamente, marca "Notice" lo que da la sensación de error.

El código que obtuve de otro experto se muestra a continuación.


Código:
//Inicializamos nuestras variables
$numlinea = 1;
$aux = array();
$idParaBorrar= 12;

// Abrimos el archivo
$archivo = fopen('something.txt','r');
// Hacemos un ciclo y vamos recogiendo linea por linea del archivo.
	while (!feof($archivo)) {
		$linea = fgets($archivo);
		$pieza = explode("|", $linea);
		$id = $pieza[0];
  if ($idParaBorrar != $identificador)  // Si la linea que deseamos eliminar no es esta 
  {
    $aux[] = $linea; // La agregamos a nuestra variable auxiliar
  }
  // Incrementamos nuestro contador de lineas

  $numlinea++;

  }
// Cerramos el archivo.
fclose($archivo);
// Convertimos el arreglo(array) en una cadena de texto (string) para guardarlo.
$aux = implode($aux, '');
// Reemplazamos el contenido del archivo con la cadena de texto (sin la linea eliminada)
file_put_contents('something.txt', $aux);

Desde ya agradezco el apoyo

Saludos Cordiales
Edu.