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 :

[RegExp] problème de regexp


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Points : 14
    Points
    14
    Par défaut [RegExp] problème de regexp
    Bonjour à tous,

    J'ai un petit problème de regexp....
    J'ai un fichier texte contenant des numéros, je dois rechercher les différents numéro que contient ce fichier puis les afficher....

    Dans le fichier c'est écris ainsi:
    Donc je pensais faire quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #Test pour le recherche des numéros existants:
    $fp = fopen ("/etc/asterisk/voicemail.conf","r");
    $texte_complet = fread ($fp, filesize("/etc/asterisk/voicemail.conf"));
    if(ereg('|^.+?'." => ",$texte_complet))
    {
     echo "Boite existante";
    }else {
     echo "Boite Inexistante";
    }
    fclose($fp);
    Mais ça ne fonctionne pas car mon expression régulière doit être erroné, je tombe dans le cas boite inexistante...


    J'ai un deuxième problème c'est quand je détecterais si il y a dans le fichier quelque chose qui correspond à ce que je veux comment l'afficher???

    Merci beaucoup pour votre aide!!!

  2. #2
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    Au faite là j'ai simplement mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #Test pour le recherche des numéros de boites vocales existant:
    $fp = fopen ("/etc/asterisk/voicemail.conf","r");
    $texte_complet = fread ($fp, filesize("/etc/asterisk/voicemail.conf"));
    if(ereg('.+'." => ",$texte_complet))
    {
     echo "Boite existante";
    }else {
     echo "Boite Inexistante";
    }
    fclose($fp);
    Et je tombe sur boite existante mais je n'arrive pas à afficher, auriez vous une idée??

    Merci beaucoup pour votre aide....

  3. #3
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut Re: problème de regexp
    Citation Envoyé par carlos20
    Dans le fichier c'est écris ainsi:
    Pourrais-tu donner un exemple plus concret ?

    Citation Envoyé par carlos20
    J'ai un deuxième problème c'est quand je détecterais si il y a dans le fichier quelque chose qui correspond à ce que je veux comment l'afficher???
    echo ou print

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    Dans mon fichier texte j'ai des numéros de boites avec des infos sur celle-ci dans ce format:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    301 => 1234,pierre dupuis,etc...
     
    303 => 1234,jean greg,etc...
    Moi je dois scanner ce fichier et voir si il existe une ou des boites, donc si il y a une ou des lignes avec ce format là.

    Ensuite je dois afficher le numéro de la ou les boites existantes sur une page web.

    Désolé pour mes explications peu clair.....

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    L'idéal serait même de récupérer les numéros de boites dans des variables ainsi je pourrais les réutiliser dans mon code....


    Merci beaucoup pour votre aide...

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    essaie ceci dans un nouveau script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <pre><?php
     
    $content = "
    301 => 1234,pierre dupuis,etc...
    302 => 6664,roger dupond,etc...
    
    303 => 1234,jean greg,etc... 
    ";
     
    preg_match_all('`(\d+)\s*=>\s*(.*?)\n`', $content, $matches);
     
    var_dump($matches);
     
    ?>
    Ca donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    array(3) {
      [0]=>
      array(3) {
        [0]=>
        string(33) "301 => 1234,pierre dupuis,etc...
    "
        [1]=>
        string(32) "302 => 6664,roger dupond,etc...
    "
        [2]=>
        string(30) "303 => 1234,jean greg,etc... 
    "
      }
      [1]=>
      array(3) {
        [0]=>
        string(3) "301"
        [1]=>
        string(3) "302"
        [2]=>
        string(3) "303"
      }
      [2]=>
      array(3) {
        [0]=>
        string(25) "1234,pierre dupuis,etc..."
        [1]=>
        string(24) "6664,roger dupond,etc..."
        [2]=>
        string(22) "1234,jean greg,etc... "
      }
    }

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    Merci beaucoup,

    Donc si j'ai bien compris les valeurs des numeros trouvé sont contenu dans $matches[1].

    Mais comment je fais par exemple pour mettre chaque valeurs dans une variable différentes?

    Merci de ta patience....

  8. #8
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Mais comment je fais par exemple pour mettre chaque valeurs dans une variable différentes?
    numéro :
    valeur :
    [/code]

  9. #9
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    En faisant ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <pre><?php
     
    $content = "
    301 => 1234,pierre dupuis,etc...
    302 => 6664,roger dupond,etc...
    
    303 => 1234,jean greg,etc...
    ";
     
    preg_match_all('`(\d+)\s*=>\s*(.*?)\n`', $content, $matches);
     
    for($i=0; $i < count($matches); $i++)
    {var_dump($matches[1][$i]);} 
    ?>
    j'obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string(3) "301"
    string(3) "302"
    string(3) "303"
    Comment faire pour avoir uniquement 301, puis 302, puis 303?

  10. #10
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    J'ai pas compris la question.

  11. #11
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    désolé je m'explique, j'ai ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <pre><?php
     
    $content = "
    301 => 1234,pierre dupuis,etc...
    302 => 6664,roger dupond,etc...
    
    303 => 1234,jean greg,etc...
    ";
     
    preg_match_all('`(\d+)\s*=>\s*(.*?)\n`', $content, $matches);
     
    echo "<html>";
    echo "<head><title>Interface Web Comedian Voice Mail</title></head>";
    echo "<body>";
    echo "<p><h1><center>Espace disque</center></h1></p>";
     
    for($i=0; $i < count($matches); $i++)
    {
    echo "<p>Boîte $matches[1][$i] : <b>test</b></p>";
    } 
    echo "<center><a href=\"/html/admin/IW_index.html\">Accueil</a></center>";
    echo "</body>";
    echo "</html>";
    ?>
    Et lors de l'exécution j'obtient ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Boîte Array[0] : test
    Boîte Array[1] : test
    Boîte Array[2] : test
    et j'aimerais avoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Boîte 301 : test
    Boîte 302 : test
    Boîte 303 : test
    Comprend pas pourquoi je n'ai pas 301, 302, etc... et j'ai Array[0], etc.. à la place???

    Je me répète mais merci beaucoup d'aider un novice....

  12. #12
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<p>Boîte ".$matches[1][$i]." : <b>test</b></p>";

  13. #13
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    tu as une erreur dans ta boucle, il faut counter matches[0] et pas matches tout court qui est tout le temps 3...

  14. #14
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Points : 14
    Points
    14
    Par défaut
    Merci beaucoup ça fonctionne nickel!!!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <pre><?php
     
    $content = "
    301 => 1234,pierre dupuis,etc...
    302 => 6664,roger dupond,etc...
    
    303 => 1234,jean greg,etc...
    ";
     
    preg_match_all('`(\d+)\s*=>\s*(.*?)\n`', $content, $matches);
     
    echo "<html>";
    echo "<head><title>Interface Web Comedian Voice Mail</title></head>";
    echo "<body>";
    echo "<p><h1><center>Espace disque</center></h1></p>";
    for($i=0; $i < count($matches[0]); $i++)
    {
    echo "<p>Boîte ".$matches[1][$i]." : <b>test</b></p>";
    } 
    echo "<center><a href=\"/html/admin/IW_index.html\">Accueil</a></center>";
    echo "</body>";
    echo "</html>";
    ?>
    Encore merci!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

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

Discussions similaires

  1. Vérification de formulaire avec regexp
    Par Shadow aok dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/08/2007, 11h57
  2. [langage] [RegExp] Détecter un chemin Windows
    Par GLDavid dans le forum Langage
    Réponses: 3
    Dernier message: 01/09/2004, 14h57
  3. [langage] [RegExp] Récupérer une portion de phrase
    Par GLDavid dans le forum Langage
    Réponses: 4
    Dernier message: 27/08/2004, 22h01
  4. [langage] [RegExp] Question d'expression régulière
    Par cloogy dans le forum Langage
    Réponses: 5
    Dernier message: 08/10/2003, 09h29
  5. regexp
    Par mathieu gérard dans le forum ASP
    Réponses: 4
    Dernier message: 02/10/2003, 18h05

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