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.