IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Compter le nombre de slashes [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Bonjour,

    avec preg_match_all, ça devrait fonctionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $pattern = '#\/#';
     
    echo preg_match_all($pattern, $subject, $matches);

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pas besoin de regexp un substr_count suffit

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Par défaut
    merci stealth, j'ai essayer mais je dois pas savoir comment l'utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    fait un substr avant

    moodle ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Par défaut
    (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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Par défaut
    j'ai finalement trouver la solution il fallait utiliser une autre colonne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment compter le nombre de lettre identique ?
    Par divableue dans le forum ASP
    Réponses: 3
    Dernier message: 07/11/2003, 15h01
  2. Compter le nombre de page d'un report
    Par ToYonos dans le forum C++Builder
    Réponses: 4
    Dernier message: 17/06/2003, 09h36
  3. compter le nombre de record
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 12/03/2003, 09h53
  4. [TListView] Compter le nombre de lignes
    Par agh dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 20h25
  5. Compter le nombre ligne listée (COUNT) ?
    Par StouffR dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/09/2002, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo