Borrar archivo después de ser descargado usando PHP

Explico la situación. Tengo un pequeño código que crea archivos en formato PDF usando LATEX y PHP pero quería que el archivo en cuestión se borrara después de que este fuera descargado y lo logré con el siguiente código:

// escribo las cabeceras de archivo, sirven para que el navegador sepa 
// que lo que va a recibir no es una página web
header('Content-type: application/pdf'); // noten que application/pdf' indica que es un PDF
header('Content-Transfer-Encoding: binary');
// la variable $pdf tiene la ruta completa al archivo a ser enviado
header('Content-length: '.filesize($pdf)); // el tamaño del archivo
header('Content-Disposition: attachment; filename="'.basename($pdf).'"'); // nombre del archivo

// aquí esta la magia
$fp = fopen($pdf, "rb"); // abre el archivo
$buffer = fread($fp, filesize($pdf)); // escribe el archivo a una variable
print $buffer; // al "imprimir" se esta enviando el archivo
fclose($fp); // cierra la lectura

// cuando termina de "imprimirlo" es por que ya lo envió y simplemente lo borro
unlink($pdf);

¿A que no se imaginaban que fuera taaan fácil?

La única limitación que se me ocurre es que el archivo sea mas grande que memory_limit de PHP y falle el programa y se detenga.

Es ¡importantísimo! que si usan la función header() no halla enviado ningún tipo de texto o salida antes, sino, no funcionara el programa.