Fonction explode pour recuperer une extension

Résolu/Fermé
Loupile - 12 oct. 2006 à 11:10
 MX7 - 19 mars 2009 à 16:58
Bonjour je vous explique mon problème

j'ai une valeur $champ qui contient une url typ http://monsite/repertoire/monfichier.mp3 ou alors http://monsite/repertoire/repertoire/repertoire/monfichier.jpg

comment puis je faire en sorte avec un explode de toujours recuperer la derniere partie de la chaine ? pour n'avoir que le .mp3 ou .jpg dans une nouvelle valeur ?

j'ai bien trouvé si la chaine de caractère est toujours sur le même modele mais si elle est variable comment faire pour toujours choisir la derniere ?

merci de votre aide
A voir également:

6 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
19 mars 2009 à 11:17
salut,

en une ligne :
$ext = substr($uri, strrpos($uri, '.') + 1);

sans le "+ 1" pour garder le point.
3
Bonjour

Il suffit simplement que tu récupères le nom de ton fichier et tu fais un explode sur le nom de ton fichier et son extension. Tu coupes alors ta chaine de caractère au niveau du point et tu obtiens un tableau avec des deux morceaux tab[0] = nom du fichier, tab[1] = extension du fichier

Ne t'embetes pas avec l'url complète !!!!

Melaine
1
Salut

Il suffit de faire deux explode

//recuperation url
$chaine = "http://monsite/repertoire/monfichier.mp3";

//delimiteur1
$delimiteur1 = "http://monsite/repertoire/";

//premiere decoupe
$tab1 = explode($delimiteur1,$chaine);

//debut de l'url
$beginURL = $tab1[0];

//nom du fichier avec extension
$nomFICHIERext = $tab1[1];

//delimiteur2
$delimiteur2 = ".";

//seconde decoupe
$tab2 = explode($delimiteur2,$nomFICHIERext);

//nom du fichier sans extension
$nomFICHIERsansext = $tab2[0];

//extension
$extension = $tab2[1];


Voili voilou
Melaine
0
Bonjour,

Mais pourquoi vous vous embêtez ?
Ne serait-il pas BEAUCOUP plus simple de faire un explode sur le caractère '.', et de récupérer le dernier élément du tableau ?

//recuperation url
$chaine = "http://monsite/repertoire/monfichier.mp3";

//delimiteur
$delimiteur = ".";

//decoupe
$tab = explode($delimiteur, $chaine);

//extension
$extension = $tab[count($tab)-1];

($extension ne contient pas le point, si tu veux le point, c'est pas compliqué, il faut faire
$extension = "." . $tab[count($tab)-1];


Voilà :)

Bonne programmation !

Xavier
0
Merci beaucoup à vous deux, vous m'avez été d'un aide précieuse ...
a bientot .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour tout le mone,

Lorsque je teste ce code, au niveau de la ligne de l'explode, j'ai le message d'erreur suivant:

Undefined subroutine &main::explode called at ...

que faut-il faire ?

Merci d'avance
0
mais comment je fais pour ne m'occuper que du fichier ?
vu que moi je n'ai que l'url ?
-1