utilisation de la classe SplFileInfo...

Mammouth du PHP | 843 Messages

22 mars 2008, 20:28

salut à tous :)

je recherche à utiliser la classe SplFileInfo, et plus précisement la fonction DirectoryIterator::getType() pour detection et affichage du type MIME d'un fichier...

j'ai essayer ceci:

Code : Tout sélectionner

<?php echo '<p>Le type est: '.DirectoryIterator::getType().'</p>'; ?>
mon soucis est que j'ai le message d'erreur suivant:
Fatal error: Non-static method SplFileInfo::getType() cannot be called statically in C:\www\test.php on line 54
si quelqu'un peut m'aider ;)
merci d'avance...
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Mammouth du PHP | 505 Messages

22 mars 2008, 20:43

Tu fais appel a la methode getType de facon statique hors elle n'est pas statique, elle s'applique a l'iterateur courant.

Il faut d'abord instancier un DirectoryIterator sur une directorie de ton choix puis faire appel a la methode

foreach ( new DirectoryIterator('./') as $file )
        {
        echo $file. ':' . $file->getType() . '<br />';
        }
    }


ViPHP
ViPHP | 4674 Messages

22 mars 2008, 21:43

Ça fait beaucoup d'accolades fermantes tout ça ... :P
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 843 Messages

22 mars 2008, 22:47

oki merci ;)

par contre ce n'est pas du tous ce que je souhaitai faire en fait... je souhaite afficher le type MIME d'un Fichier :-k

j'ai regarder dans la doc et j'ai vue que Mimetype etait dépressié... il conseil d'ailleur Fileinfo mais cette extension n'est pas disponible sur mon hebergeur :)

je ne trouve pas de methode pour definir le type MIME d'un fichier :?

Si quelq'un peu m'aider ;)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Mammouth du PHP | 505 Messages

23 mars 2008, 11:37

Il n'y a helas pas beaucoup de choix...
Soit tu fais un truc basé sur les extensions, et donc pas forcément fiable mais souvent assez pour que ca fonctionne.

Soit tu reprend le meme principe que fileinfo qui est en fait un truc équivalent au file unix basé sur les magic cookie. Une analyse toute bête des premier octets du fichier. Je crois avoir déjà vu des classes php reprenant l'équivalent de fileinfo.

Mammouth du PHP | 843 Messages

23 mars 2008, 15:46

oki, je vait regarder du coté de chez mon hebergeur si il n'y a pas moyen de disposer de Fileinfo.

sinon j'ai essayer ceci via mime_content_type(); qui est devenu obselete mais j'ai ce message d'erreur:
Fatal error: Call to undefined function mime_content_type() in C:\test.php on line 56
n'y a t'il pas oyen de faire en sorte d'avoir possibilité d'utiliser cett fonction quand même?
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

ViPHP
ViPHP | 4674 Messages

23 mars 2008, 16:50

En PHP 5.3 tu as un nouveau niveau d'erreur qui fait son apparition : E_DEPRECATED. Attention donc :).

J'ai fais un paquetage alternatif à FileInfo (dans le cas où il est désactivé). Je me base sur l'extension, et je me sers du fichier d'Apache pour associer les mime-type au extension (et inversement). Ce fichier est stocké ici : apache2/conf/mime.types si mes souvenirs sont bons.

Si les sources de FileInfo sont disponibles, je suis preneur :).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 2287 Messages

24 mars 2008, 12:28

Rien de tel que les commandes natives de GNU/Linux pour ce genre de besoin :
<?php
$fichier='/etc/hosts';
echo exec('file -i '.escapeshellarg($fichier));
?>
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Mammouth du PHP | 843 Messages

25 mars 2008, 22:02

ok j'ai regarder dans les type MIME apache mais je ne trouve rien en ce qui concerne certains type mime...

quel sont les type mime de .pdf .doc (ms word) et .odt (openoffice writer) ?

si quelqu'un peut m'orienter ;)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

ViPHP
ViPHP | 4674 Messages

25 mars 2008, 22:14

PDF : application/pdf
Word : application/msword
pour les ODT, je ne l'ai pas dans mon fichier d'Apache. Une petite recherche devrait t'aider à trouver la réponse :).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 843 Messages

27 mars 2008, 02:15

pour les odt et autre format open office, j'ai rajouté à mon httpd.conf ceci (source sur le site de OOO ;))

Code : Tout sélectionner

## # ajout des type MIME openoffice2.org ## AddType application/vnd.stardivision.chart .sds AddType application/vnd.stardivision.calc .sdc AddType application/vnd.stardivision.writer .sdw AddType application/vnd.stardivision.writer-global .sgl AddType application/vnd.stardivision.draw .sda AddType application/vnd.stardivision.impress .sdd AddType application/vnd.stardivision.math .sdf AddType application/vnd.sun.xml.writer .sxw AddType application/vnd.sun.xml.writer.template .stw AddType application/vnd.sun.xml.writer.global .sxg AddType application/vnd.sun.xml.calc .sxc AddType application/vnd.sun.xml.calc.template .stc AddType application/vnd.sun.xml.impress .sxi AddType application/vnd.sun.xml.impress.template .sti AddType application/vnd.sun.xml.draw .sxd AddType application/vnd.sun.xml.draw.template .std AddType application/vnd.sun.xml.math .sxm AddType application/vnd.oasis.opendocument.text .odt AddType application/vnd.oasis.opendocument.text-template .ott AddType application/vnd.oasis.opendocument.text-web .oth AddType application/vnd.oasis.opendocument.text-master .odm AddType application/vnd.oasis.opendocument.graphics .odg AddType application/vnd.oasis.opendocument.graphics-template .otg AddType application/vnd.oasis.opendocument.presentation .odp AddType application/vnd.oasis.opendocument.presentation-template .otp AddType application/vnd.oasis.opendocument.spreadsheet .ods AddType application/vnd.oasis.opendocument.spreadsheet-template .ots AddType application/vnd.oasis.opendocument.chart .odc AddType application/vnd.oasis.opendocument.formula .odf AddType application/vnd.oasis.opendocument.database .odb AddType application/vnd.oasis.opendocument.image .odi
j'espere que sa servira à d'autre ;)

@HyWan: serai il possible de voir ton packetage alternatif à FileInfo ou au moins la methode utiliser?
merci d'avance
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

ViPHP
ViPHP | 4674 Messages

27 mars 2008, 08:41

Je ne l'ai pas encore documenter et il est tout tout petit, basé sur les extensions, donc c'est pas ultra top, mais ça dépanne. Je l'avais créer à la base pour construire des mime-types et compagnie, pas pour retrouver le mime-type à partir d'une extension. Mais il peut servir à ça. C'est une des conséquences de l'analyse et gestion des mime-types.

Tu peux le trouver dans Hoa : paquetage Mime. Tu peux jeter un œil aux sources sur l'SVN. Je te recommande d'aller sur le site : http://hoa-project.net, puis dans la partie téléchargement. Tu auras tous les liens nécessaires :).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 843 Messages

30 mars 2008, 21:27

oki merci :)

je vais voir ce qu'il en est :)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non: