jer666 Posté(e) le 29 janvier 2007 Partager Posté(e) le 29 janvier 2007 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? merci par avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
gvosnet Posté(e) le 30 janvier 2007 Partager Posté(e) le 30 janvier 2007 Hello, Normalement, le code suivant extrait l'extension (et la passe en minuscule) d'un nom de fichier : $extension=strtolower(substr(strrchr($nom_fichier, '.'), 1)); Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mandor Posté(e) le 30 janvier 2007 Partager Posté(e) le 30 janvier 2007 Sauf que là si la vidéo s'appelle machin.truc.avi (parfaitement légitime), tu vas l'avoir dans l'os. Un petit regexp sur le nom du fichier et c'est réglé proprement: $extension = preg_replace('/^.+\.([a-z0-9]+)$/i', '\\1', $nom_du_fichier); Lien vers le commentaire Partager sur d’autres sites More sharing options...
gvosnet Posté(e) le 30 janvier 2007 Partager Posté(e) le 30 janvier 2007 Je ne suis pas trop connaisseur des expressions régulières.... Tu pourrais expliquer la tienne ? (je te crois si tu dis qu'elle fonctionne, hein, c'est juste pour comprendre comment ça marche exactement...) Lien vers le commentaire Partager sur d’autres sites More sharing options...
jer666 Posté(e) le 30 janvier 2007 Auteur Partager Posté(e) le 30 janvier 2007 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 More sharing options...
Mandor Posté(e) le 1 février 2007 Partager Posté(e) le 1 février 2007 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 More sharing options...
gvosnet Posté(e) le 1 février 2007 Partager Posté(e) le 1 février 2007 Merci beaucoup pour ton explication très claire (heureusement que j'avais quand même quelques bases !) Lien vers le commentaire Partager sur d’autres sites More sharing options...
TheGuit Posté(e) le 1 février 2007 Partager Posté(e) le 1 février 2007 Utiliser des regexp pour ca c'est prend un bazzoka pour tuer une mouche 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 More sharing options...
jer666 Posté(e) le 1 février 2007 Auteur Partager Posté(e) le 1 février 2007 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 More sharing options...
Quarky Posté(e) le 2 février 2007 Partager Posté(e) le 2 février 2007 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.