utilisation de la classe SplFileInfo...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : utilisation de la classe SplFileInfo...

par BeRoots » 30 mars 2008, 21:27

oki merci :)

je vais voir ce qu'il en est :)

par Hywan » 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 :).

par BeRoots » 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

par Hywan » 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 :).

par BeRoots » 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 ;)

par Calimero » 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));
?>

par Hywan » 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 :).

par BeRoots » 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?

par titerm » 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.

par BeRoots » 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 ;)

par Hywan » 22 mars 2008, 21:43

Ça fait beaucoup d'accolades fermantes tout ça ... :P

par titerm » 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 />';
        }
    }

utilisation de la classe SplFileInfo...

par BeRoots » 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...