September
10
Posted on 10-09-2007
Filed Under (windows, mime type, bugs, php, Web) by admin

Dopo essere impazzito per almeno 3 ore a cercare informazioni sulla gestione dei mime-types in PHP5, sono riuscito a gestirli traducendo un po’ di francese e senza dovermi scrivere un’apposita classe..

Ma andando con ordine..

  1. Nel manuale di PHP5 viene indicata la funzione [1]mime_content_type() come “deprecated” in favore delle funzioni di FileInfo fornite dalle librerie PECL. L’installazione di [1] è abbastanza semplice, peccato che non venga indicato che
    • bisogna impostare in php.ini tramite mime_magic.magicfile il percorso del DB contenente i caratteri speciali di riconoscimento;
    • la funzione mime_content_type() in PHP5 non funziona più, in quanto non riconosce il file di DB distribuito con essa, producendo una lista lunghissima di errori nei log di Apache.
  2. La nuova gestione dei mime-types viene affidata ora a FileInfo, distribuita come estensione PECL. Ma come sempre ci sono delle piccole sfumature della documentazione che non spesso vengono viste:
    • bisogna in ogni caso indicare dove si trova il file di DB magic.mime
    • per un bug il file di DB va indicato senza nessuna estensione
    • in Windows la libreria FileInfo, anche se in presenza del file di DB non funziona: necessita dei files: magic.mime, magic, magic.mgc e magic.mime.mgc
    • questi files non sono distribuiti dalla libreria PECL direttamente, ma vanno presi dal porting di file (un’applicazione linux) e spostati in /php/extras (i files sono presenti in Programmi\GnuWin32\share\file)
    • il riconoscimento dei files a volte sbaglia se è presente il carattere “!” (punto-esclamativo)
    • il file passato per l’acquisizione del mime-type deve essere passato con l’intero path, pena l’errore “file not found”:
      $mime=finfo_file($finfo, realpath($name));
  3. Beh, credo sia tutto… :|

Si, questo post voglio tenermelo soprattutto come appunto… non si sa mai..

Bye!

Qualche link (bugs):
http://pecl.php.net/bugs/bug.php?id=7555 , http://pecl.php.net/bugs/bug.php?id=10259 , http://pecl.php.net/bugs/bug.php?id=7391

[soluzione in francese] http://www.wampserver.com/phorum/read.php?f=1&i=9122&t=9122

Note: Due to spam comments received from this posta I closed comments. :|

    Read More   

Comments are closed.