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 28/10/2011, 14h22   #1
Invité de passage
 
Inscription : septembre 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 15
Points : 3
Points : 3
Par défaut Compter le nombre de slashes

Bonjour je souhaite compter le nombre de slash afin de valider un lien ou pas

voici ce que j'ai testé

Code :
1
2
3
4
5
6
7
8
9
10
11
 
$subject="a/b/c/d";
$pattern = '#/{3}#';
if(preg_match($pattern, $subject))
{
 echo" ok";   
}
else
{
    echo "lien invalide";
}
ici le lien n'est pas valide, pourant dans ma chaine j'ai 3 slash ?
comment je dois m'y prendre pour filtrer que les liens qui on 3 slash , pas plus pas moin

merci d'avance pour la réponse
javaweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 14h30   #2
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Bonjour,

avec preg_match_all, ça devrait fonctionner

Code :
1
2
3
$pattern = '#\/#';
 
echo preg_match_all($pattern, $subject, $matches);
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 28/10/2011, 14h34   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
pas besoin de regexp un substr_count suffit
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 14h56   #4
Invité de passage
 
Inscription : septembre 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 15
Points : 3
Points : 3
merci stealth, j'ai essayer mais je dois pas savoir comment l'utiliser

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
    public function getCour($id) { //affichage de cours
 
        $reponse = $this->bdd->query("SELECT id,path,name FROM prod_course_categories WHERE path REGEXP '^/" . $id . '/' . "'");
 
        // recherche des cours
        while ($cour = $reponse->fetch()) {
            if(substr_count($cour['path'], '/',2))
            {
            echo "<a class='cour' href=" . $this->wwwroot . $this->numerocour . $cour['id'] . ">" . $cour['name'] . "</a>";
            echo $cour['path']."<---<br/>";
            }
 
        }
ici j$cour['path'] contient bien des
/10/18 <---
mais il y a aussi des
/10/18/5 -> 3 slash et j'en veux que 2 ?

je vais essayer preg_match_all pour voir
javaweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 15h12   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
fait un substr avant

moodle ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 16h58   #6
Invité de passage
 
Inscription : septembre 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 15
Points : 3
Points : 3
(oui c'est moodle tu as déjà travailler dessus ? )

Pour utiliser substr ll faut connaitre d'avance a quel moment on commence et on arrive? mais comment je fait pour connaitre ces paramètres si j'ai ceci?

Code :
1
2
3
4
 
/XX/YY/ZZ
ou
/XX/YYY/ZZZZ
le x le y et le z je ne connais pas le de nombre chiffre qu'on va utiliser.

J'essaye de développer un menu plus ergonomique, car celui de moodle n'est pas top, le visiteur s'y perd.

le problème c'est qu'il on mis tout dans le même panier

dans la table course_catégorie on y trouve

- les groupes de catégorie exemple formation a distance, formation initiale
- les catégories du cours exemple math, français
- les sous catégories exemple les produits remarquable,le ensemble

c'est pas facile de construire l' arborescence des menus avec qu'une seul table, en plus leurs "fil d'ariane" n'est pas bien complet. lorsqu'on clique sur une sous catégorie le lien groupe de catégorie a disparut.

voici ma démarche mais elle est peut-être pas optimiser.

- 1 je fais une requête pour savoir le nom des groupes de catégorie
$reponse = $this->bdd->query('SELECT id,name FROM course_categories WHERE parent=0');

-2 je fais une autre requête pour connaître chaque catégories de cours
$reponse = $this->bdd->query("SELECT id,path,name FROM prod_course_categories WHERE path REGEXP '^/" . $id . '/' . "'");

-3 ensuite j'essaye de trouver pour chacun des les "sous cour".

Ma méthode n'est peut être pas bonne ? faut t'il mieux faire une seul requête dans toutes la tables categories, ensuite je charge dans des tables
le groupe de catégorie, les catégories, les cours les sous cour.

et avec tout cela je construit l'arborescence
javaweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 22h25   #7
Invité de passage
 
Inscription : septembre 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 15
Points : 3
Points : 3
j'ai finalement trouver la solution il fallait utiliser une autre colonne.
javaweb 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 09h11.


 
 
 
 
Partenaires

Hébergement Web