Però a questo link:

http://www.mrwebmaster.it/php/forzar...-php_7379.html

si propone una soluzione diversa:

Codice PHP:
if (!preg_match('/^[a-z0-9]+\.[a-z]{2,3}$/i',$fn)) { 
che a me non piace molto perché se non erro quel {2,3} significa che l'estensione del file può essere solo di 2 o 3 lettere ma i .docx ne hanno 4 e se in futuro ci fossero dei file con estensioni superiori alle 4 lettere? tu che ne pensi di questa mia considerazione?