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 30/03/2006, 10h51   #1
Nouveau Membre du Club
 
Avatar de micatmidog
 
Inscription : février 2004
Messages : 94
Détails du profil
Informations personnelles :
Âge : 21
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : février 2004
Messages : 94
Points : 38
Points : 38
Par défaut Trouver tous les "/mot" dans une chaîne

Bonjour à tous,

J'ai une chaîne, appelée $current_dir, qui réprésente le chemin.

Citation:
./images/application
par exemple.

Je souhaite trouver et afficher tous les dossiers situés après les slashs, c'est-à-dire : images<br>application<br> dans cet exemple.

J'ai essayé d'utiliser :

Code :
1
2
3
if(ereg('/[[:alpha:]]+', $current_dir, $reg_dir))
	foreach($reg_dir as $elem)
		echo $elem.'<br>';
Mais cela ne m'affiche seulement le premier dossier, qui est images.
Je voudrais ne pas afficher le slash, je sais pas si c'est possible, au pire je pourrais refaire une condition avec un regex qui trouvera le slash et l'envera dans la boucle chargée de trouver les dossiers.

Comment puis-je faire ?
Merci d'avance.
micatmidog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2006, 10h58   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
Hum fais un explode( ) sur /, supprime le 1er élément du tableau obtenu (si tu ne veux vraiment pas afficher le 1er répertoire du chemin), puis un foreach( ).
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2006, 20h09   #3
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
+1

Si tu veux absolument utiliser les regex, je te conseille preg_match_all() plutôt qu'ereg().
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 10h30   #4
Nouveau Membre du Club
 
Avatar de micatmidog
 
Inscription : février 2004
Messages : 94
Détails du profil
Informations personnelles :
Âge : 21
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : février 2004
Messages : 94
Points : 38
Points : 38
Ok merci beaucoup, mais si quelqu'un peut m'aider à trouver la bonne regex, ça serait très sympa ^^ car je n'y arrive pas après une demie heure d'essais...
micatmidog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 11h35   #5
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Salut micatmidog

Code :
1
2
3
4
5
6
7
8
9
10
11
 
<?php
$chaine = "./truc/machin/bidule";
 
preg_match_all ("`([^/\.].)+`", $chaine, $match);
 
foreach ($match[0] as $m) {
    echo $m."<br />";
}
 
?>
dieu sait que j'aime les PCRE, mais je rejoins pourtant l'avis de Séb. concernant l'utilisation plus simple d'un explode()


__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 11h46   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
ska_root : C'est pas drôle, tu lui as donné la solution à ne pas utiliser...

Voici ce dont parlait Séb. :
Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
 
$chaine = "./truc/machin/bidule";
 
if($repertoires = split('/', $chaine)){
    foreach ($repertoires as $repertoire) {
        echo $repertoire."<br />";
    }
}
 
?>
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 11h55   #7
Nouveau Membre du Club
 
Avatar de micatmidog
 
Inscription : février 2004
Messages : 94
Détails du profil
Informations personnelles :
Âge : 21
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : février 2004
Messages : 94
Points : 38
Points : 38
Merci beaucoup ^^

Salut ska_root au passage
micatmidog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 12h07   #8
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Citation:
Envoyé par Kirkis
ska_root : C'est pas drôle, tu lui as donné la solution à ne pas utiliser...
errare humanum est

__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h59.


 
 
 
 
Partenaires

Hébergement Web