Cita:
Iniciado por David $buscar nunca será vacío ya que se incluye el final de línea en todos los elementos del array. Prueba usando el flag FILE_IGNORE_NEW_LINES al llamar a
file()
Lo que pasa es que cuando borro la línea del archivo afectado y luego hago un echo a ambos ($buscar y $texto), $buscar aparece vacío en el primer refrescamiento. De ahí que lo haya utilizado como condición.