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.