PHP: Finestra del download cliccando su un link

Per far apparire la finestra dei download invece che aprire i file direttamente nel browser si possono far passare i download attraverso uno script in PHP.
Lo script è il seguente (si deve personalizzare la variabile $path per specificare il percorso della cartella che contiene i file da far scaricare):
<?php
$path 
\'percorso/della/cartella/\';
$file = isset($_GET[\'file\']) ? trim($_GET[\'file\']) : \'\';
$file str_replace(\'/\',\'\',str_replace(\'\\',\'\',$file));
if($file!=\'\' && file_exists($path.$file)){
    ob_start();
    header(\'
HTTP/1.0 200 OK\');
    header(\'
Cache-Control: public, must-revalidate\');
    header(\'
Pragmahack\');
    header(\'
Content-type\'.mime_content_type($path.$file));
    header(\'
Content-Dispositionattachmentfilename="\'.$file.\'"\');
    header(\'
Content-Transfer-Encodingbinary\');
    header(\'
Content-Length\'.filesize($path.$file));
    ob_end_clean();
    readfile($path.$file);
}
?>


Il link nella pagina sarà in questo modo ("download.php" è il nome della pagina che conterrà lo script precedente e "file.ext" è il nome del file da scaricare):
<a href="download.php?file=file.ext">Link</a>


Se vi dà errore alla riga dove è presente la funzione mime_content_type (deprecata), sostituitela con:
header(\'Content-type: octet/stream\');