Aller au contenu

php, retrouver l'extension d'une video [resolu]


jer666

Messages recommandés

bonjour,

je debute en php, et je commence doucement un projet qui me tiens a coeur depuis quelques temps deja.

Ce projet commence par une page ou mes users peuvent proposer des videos de plusieurs formats.

Wmv, mov mpg, avi, mais aussi flv, ou encore des urls de type youtube et dailymotion, ou encore des liens vers un site de videos comme tekyo ou cpourgolri.

grace a un systeme de bouton radio je compte séparer les diverses variables correspondante a video traditionnelle, flv, youtube,url.

et c'est l'user qui fera le plus gros du taff.

Ce qui me gene c'est pour les videos traditionnelle (wmv, mpg...)

Le format xhtml pour les inclures dans mes pages est différents selon le format.

je vous rappelle que je suis debutant et que mes recherches n'ont rien donner, donc pitié si la reponse est simple ;)

connaitriez vous un moyen de retrouver l'extension de mes videos?

j'avais penser a faire une recherche d'une chaine de caractere. En clair si dans l'url correspondant a la video il trouve wmv ou mov, il doit le mettre dans la bonne forme xhtml, c'est juste quelques conditions a faire.

mais j'avous avoir un peu peur dans le cas ou un user poste la video movie.wmv par exemple, et ou on retrouvera mov en premier et wmv en second.

une idée? :yes: merci par avance

Lien vers le commentaire
Partager sur d’autres sites

wouaw! merci beaucoup de votre intervention.

mais comme gvos_net, j'avous que le debutant que je suis n'a rien compris au fonctionnement de ton code.

pourrais tu expliquer legerement? je vais faire les recherches adequate bien sur mais ca m'aiderais un peu a comprendre au moins le fonds du raisonement. Merci beaucoup :)

Lien vers le commentaire
Partager sur d’autres sites

En gros, ça ne garde de la chaine de charactères donnée en argument que les charactères alphanumériques situés après le dernier point, ce qui est exactement ce que tu veux faire.

Pour détailler un peu plus l'expression régulière utilisée:

^ symbolise le début de la chaine,

.+ représente un ou plusieurs charactères quelconques,

\. représente le "." qui nous intéresse, celui avant l'extension (l'antislash devant sert à escaper le "." qui serait autrement reconnu comme un symbole d'expression régulière),

[a-z0-9]+ représente un ou plusieurs charactères alphanumériques (de "a" à "z" et de "0" jusqu'à "9"),

$ fin de chaine.

L'opérateur + étant "greedy" par défaut, ça a pour effet dans .+\. d'aller jusqu'au dernier point (si on voulait le premier, on aurait utilisé .+?\. à la place pour rendre + "non-greedy").

Donc en français, ça voudrait dire qu'on décompose le nom du fichier comme suit:

début de chaine, n'importe quoi on s'en fout, dernier point de la chaine, des charactères alphanumériques, fin de chaine.

Ce qui nous intéresse d'avoir dans tout ça, c'est bien sûr les charactères alphanumériques d'après le point et les parenthèse servent justement à "extraire" la partie d'une chaîne qu'on veut identifier.

On met tout ça bout à bout, ça donne : /^.+\.([a-z0-9]+)$/ (on rajoute des slashs avant et après pour délimiter l'expression régulière).

Pour finir, on ajoute le modificateur "i" pour que notre expression régulière soit "case insensitive", et voilà: /^.+\.([a-z0-9]+)$/i

Bon après je vais pas vous faire un cours magistral complet sur les expressions régulières, d'autant plus qu'il y a des miliers d'articles et de tutoriaux à ce sujet, mais pour tout programmeur digne de ce nom c'est quasiment inévitable donc je vous conseille fortement d'apprendre, ça vous simplifiera la vie.

Lien vers le commentaire
Partager sur d’autres sites

Utiliser des regexp pour ca c'est prend un bazzoka pour tuer une mouche :francais:

La syntaxe de gvos_net est bonne :) puisqu'il prend la derniere occurence du '.' dans la phrase et renvoie ce qui se trouve derriere :)

Mais attention a ne pas trop se baser sur l'extension un test sur le mime-type est beaucoup plus sécurisé :)

Lien vers le commentaire
Partager sur d’autres sites

merci a vous tous!

aprés plusieurs recherches et notamment sur les mimes type j'ai opté de moi même pour cette solution. et j'avous qu'en plus c'est plus simple a gerer.

Merci beaucoup pour ton explication, j'ai presque compris, je vais tout de meme pour ne pas mourrir idiot, essayer de plus me renseigner sur ton bout de script afin de pouvoir le reutiliser autre part.

merci encore.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...