Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/10/2007, 17h59   #1
Membre confirmé
 
Thomas Gambier
Inscription : avril 2005
Messages : 807
Détails du profil
Informations personnelles :
Nom : Thomas Gambier
Âge : 28
Localisation : France, Drôme (Rhône Alpes)

Informations forums :
Inscription : avril 2005
Messages : 807
Points : 243
Points : 243
Par défaut isoler nom d'un chemin de fichier

Bonjour,

Je souhaite à partir d'une chaine comme ceci:
Code :
1
2
 
$image="C:\\Documents and Settings\\utilisateur\\Mes documents\\images\\image.jpg";
Obtenir ceci:
Code :
1
2
3
 
$nom=image.jpg;
$chemin=C:\Documents and Settings\utilisateur\Mes documents\images\image.jpg;
Comment faire avec les regex?
Je pense qu'il faut utiliser split et ereg_replace, mais je n'y arrive pas...
Help please!
calitom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2007, 18h39   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Pourquoi une expression régulière ? Des fonctions comme basename ne conviennent-elles pas ? Sans compter qu'il vaut mieux être portable et qu'il existe maintes façons d'arriver à cette fin :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$image="C:\\Documents and Settings\\utilisateur\\Mes documents\\images\\image.jpg";
 
# Méthode 1
$nom = basename($image);
$chemin = dirname($image);
printf('%s, %s<br/>', $nom, $chemin);
unset($nom, $chemin);
 
# Méthode 2
$morceaux = preg_split('~/|\\\~', $image);
$nom = array_pop($morceaux);
$chemin = implode('/', $morceaux);
printf('%s, %s<br/>', $nom, $chemin);
unset($nom, $chemin);
 
# Méthode 3
if (preg_match('~(.*?)([^/\\\]*)$~', $image, $m)) {
    $nom = $m[2];
    $chemin = $m[1];
}
printf('%s, %s<br/>', $nom, $chemin);
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h20.


 
 
 
 
Partenaires

Hébergement Web