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 :

Quelle fonction native utiliseriez-vous pour "capturer" deux caractères dans une chaine et les remplacer ?


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2017
    Messages : 29
    Points : 17
    Points
    17
    Par défaut Quelle fonction native utiliseriez-vous pour "capturer" deux caractères dans une chaine et les remplacer ?
    Bonjour,

    Admettons que le script reçoive un contenu depuis $_POST[''] :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $_post[contenu]='
    [1: le titre | le contenu du premier article]
    [2: le deuxième titre | le contenu du second article]
    ';
    Ce qui est utile dans cette chaine, c'est :

    Car 1 et 2 sont ici des identifiants d'article.
    Je dois donc les récupérer dans un tableau de variables, puis faire un foreach avec une requête.

    Au départ, je suis obligé de récupérer [1 et [2 et non pas 1 ou 2 tout seul, car d'autres chiffres peuvent se trouver dans le contenu.

    Il faut donc que j'isole les chaînes [1, [2, [23, etc...

    -----> Et je ne sais pas quelle fonction native de php je dois utiliser pour récupérer cela.

    Pour l'instant, je jette un oeil sur preg_replace, mais ça ne semble pas convenir.
    Avez-vous une meilleure idée ?

    Merci d'avance !


    **edit**
    En plus, la difficulté c'est que le nombre de la chaine de caractère recherchée n'est pas toujours le même. Il faut donc une variable à l'intérieur de ladite chaine à isoler.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    La solution à ton besoin semble plutôt être preg_match_all()

    un exemple rapide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $pattern = "/\[\d+/";
    $matches = array();
    preg_match_all($pattern,$_post['contenu'],$matches);
    var_dump($matches);
    $matches contient toutes les occurences de "[chiffre". A toi ensuite d'en faire ce que tu veux.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2017
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Salut cher grunk,

    Justement, on vient de me susurrer un exemple similaire, à ceci près que l'expression rationnelle ailleurs conseillée est :
    Tandis que toi, tu utilises :

    La différence se trouve dans les ( ).
    A quoi servent donc ces parenthèses ?

    Aussi, dans ton message, pour lequel je te remercie bien, tout semble être ou rester dans le "A toi ensuite d'en faire ce que tu veux"...

    Eh bien ce que je souhaite, c'est récupérer chaque chiffre ainsi isolé dans un tableau de variables, de manière à transformer ces chiffres en paramètre dans une requête sql.
    Je viens donc d'essayer cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    foreach($matches as $id)
        { echo"$id - ";}
    Mais n'étant point très doué avec les tableaux (ni en programmation en général, j'avoue), ce morceau de code ne me retourne qu'un array-array-array, somme toute peu fonctionnel...

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Les parentèses sont capturante , c'est à dire que si tu les met le tableau $matches sera :
    array(
    0 => ('[1','[2')
    1 => ('1','2')
    )

    au lieu de juste

    array(
    0 => ('[1','[2')
    )

    Pour ce qui est du reste , tu te doute bien que je vais pas te faire ton boulot

    Pour travailler avec les tableaux quand on est pas trop sur de soit , on commence par les afficher via var_dump($tableau) ou print_r($tableau) ce qui permet de voir à quoi il ressemble et ensuite on utilise un ou plusieurs for ou foreach pour descendre dans les niveaux du tableau
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2017
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Salut grunk,

    Je vois mal la différence entre tes deux exemples, concernant les "parenthèses capturantes"...

    A part ça, ici nous utilisons une expression rationnelle pour isoler le caractère numérique que l'on ne connait pas d'avance.
    Mais si nous le connaissions d'avance, par exemple [85, alors quelle fonction aurait-on pu utiliser ?

    Juste comme ça, pour la science.



    NB : pour le tableau, c'est ok.

  6. #6
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Si tu veux capturer la portion de chaine qui est égale à [85 mais qui ne prend pas [850 tu peux faire comme suit.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    $_post['contenu'] = "
    [85: le titre | le contenu du premier article]
    [850: le deuxième titre | le contenu du second article]
    [8510: le deuxième titre | le contenu du second article]
    ";
    $pattern= '/\[(85)(?!\d+)/';
    $matches = array();
    preg_match_all($pattern,$_post['contenu'],$matches);
    var_dump($matches);

    La regexp prend

    Si tu ne veux que contrôler la présence de [85 tu peux faire comme ça.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $pattern= '/\[85(?!\d+)/';
    if (preg_match($pattern,$_post['contenu']) == true) {
     print "contient 85";
    } else {
     print "ne contient pas 85"; 
    }

    La regexp dit : prend tous les [85 qui ne sont pas suivis d'au moins un chiffre.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  7. #7
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Citation Envoyé par Supracode Voir le message
    Mais si nous le connaissions d'avance, par exemple [85, alors quelle fonction aurait-on pu utiliser ?
    Si il est juste question de savoir ou se trouve dans le texte une valeur connue , tu utilise strpos qui est beaucoup plus performant que les expressions régulières
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    strpos fonctionnera si on a la toujours le format [n: mais si on peut avoir autre chose qu'un : après les chiffres cela ne fonctionnera pas...tout le temps.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2017
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Salut à vous tous,

    J'avais quitté ce problème à cause d'un bug imprévu, et là je viens en plus de passer tout l'après-midi sur ce petit script. J'ai les neurones explosés.
    Je me demande si la "programmation autonome" ne relève pas du passé...

    Maintenant donc, je n'arrive pas à insérer le contenu dans la table voulue.
    J'effectue le test et ça n'affiche que array array

    L'bout d'code, si un génie passe par là :
    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
     
    //le masque qui nous intéresse, pour récupérer tous les numéros précédés par [
    $expression = '/\[(\d+)/';
     
    //$contenu_definition contient le contenu (c'est le cas de le dire) du textarea avec [1 première phrase, [8 deuxième phrase, etc...
    preg_match_all($expression, $contenu_definition, $matches, PREG_SET_ORDER, 0);
     
    //maintenant on insère un tuple par ligne du tableau ainsi créé
    foreach($matches as $id_c){
     $sql = "INSERT INTO perso_definition (id_definition,id_citation) 
    VALUES
    ('$id_definition','$id_c')";
     $stmt = $bdd->prepare ($sql); 
     
     $stmt->execute();
     
     echo"$id_c";
    }
    Ici, id_definition est bien insérée. Donc il n'y a pas de bug dans la requête. Par contre le champs id_citation est vide dans la table. Donc le problème vient bien du tableau, qui est vide.

    Une idée ?

  10. #10
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Es-tu sûr que le contenu du textarea est bien passé ?
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  11. #11
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    J'effectue le test et ça n'affiche que array array
    Ca veux dire que $i_c est un tableau et non une valeur textuelle comme tu le penses.

    Un var_dump($matches) devrait te sortir un tableau à 2 dimensions j'imagine
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre à l'essai
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2017
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Salut à vous,

    J'ai essayé de faire un var_dump et ça m'affiche ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(1) { [0]=> array(2) { [0]=> string(2) "[7" [1]=> string(1) "7" } } Array
    Normalement, avec le texte que j'ai utilisé pour le test, le champ textarea ne devrait dégager qu'une seule chaine de caractère [7.

    Que signifie-donc une telle ligne ?

  13. #13
    Membre à l'essai
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2017
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Bon finalement, j'ai réussi comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    foreach($matches as $id_c)
    {
     $sql = "INSERT INTO perso_definition (id_definition,id_citation) 
    VALUES ('$id_definition','$id_c[1]')";
     
    $stmt = $dbh->prepare ($sql); 
     
    $stmt->execute();
     
    //echo"$id_c[1] -";
    }
    Ce qui change, c'est donc $id_c[1] et non $id_c dans les paramètres de la requête.


    Mais j'ai pas pigé pour quoi , j'ai juste piqué au hasard ailleurs dans la galaxie internet, je ne sais même plus sur quelle planète.

    Alors donc, pourquoi ce [1] ? Vous allez me dire que ça désigne une ligne du tableau. Mais si j'en ai dix de lignes, je ne vois en quoi le script incrémente cette ligne à chaque boucle du foreach.

  14. #14
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    C'est ce que je t'ai expliqué dans mon message #4. Selon le pattern que tu utilises tu peux avoir plusieurs résultats à l'expression régulière et donc avoir un tableau plus ou moins complexe en retour.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  15. #15
    Membre à l'essai
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2017
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par grunk Voir le message
    C'est ce que je t'ai expliqué dans mon message #4. Selon le pattern que tu utilises tu peux avoir plusieurs résultats à l'expression régulière et donc avoir un tableau plus ou moins complexe en retour.


    Hum, oui, mais ça ne m'explique pas pourquoi ceci n'affiche rien echo "$id_c"

    Alors que ceci fonctionne : echo "$id_c[1]"

    Ici, ce que je comprends, c'est que j'indique au script que la variable est un tableau et qu'il faut afficher la première ligne de ce tableau.

    Mais comment le script lit-il les lignes suivantes, puisque la valeur en paramètre dans [ ] n'est pas incrémentée à chaque boucle foreach ?

  16. #16
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Pour afficher un tableau il faut utiliser print_r.

    Pour le foreach tu peux aussi utiliser la syntaxe suivante :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach($tableau as $key => $value)
    {
     ...
    }

    A chaque itération, $key (mais tu peux mettre le nom que tu veux) prend la valeur de la clé de l'élément courant du tableau.

    Si tu as un tableau de tableaux, c'est le même principe.


    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    foreach($tableau as $key => $soustableau)
    {
      foreach($soustableau as $key2 => $valeur)
      {
        ...
      }
    }
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  17. #17
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par Supracode Voir le message
    ...Mais j'ai pas pigé pour quoi ...
    LIS et regarde les exemples (notamment le #2) : preg_match_all()

    matches
    Tableau contenant tous les résultats, dans un tableau multidimensionnel
    Explication : dans la regex, chaque parenthèse (...) est dite "capturante", et va renvoyer un résultat, qui sera stocké dans une "dimension" de l'array $matches :

    • $matches[0] correspond à la regex complète
    • $matches[1] correspond à la 1ère parenthèse capturante
    • $matches[2] correspond à la 2ème
    • et ainsi de suite...



    Dans ton cas, on a 1 parenthèse : '/\[(\d+)/'

    -> c'est bien $matches[1] qui fournit les id recherchés.


    Par conséquent, on peut écrire :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach($matches[1] as $id_c)
    {
       $sql = "INSERT INTO perso_definition 
       (id_definition,id_citation) 
       VALUES 
       ('$id_definition','$id_c')";
    ....

  18. #18
    Membre à l'essai
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2017
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Ah d'accord, ici lorsqu'on écrit $id_c[1], le [1] est un paramètre de la fonction preg_match_all et n'a rien à voir avec les tableaux php.
    J'ai fait la confusion, parce que l'écrit $id[] pour les tableaux d'id, par exemple.

    Donc si je prends l'exemple ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )
    Ici, le [1] signifie que l'on va chercher quelque chose de précis dans cette fonction. Mais quoi ? Quelle partie au juste est-elle précisée par [1] ?

    Puis les parenthèses capturantes, j'ai pas bien pigé non plus à vrai dire.

    Citation Envoyé par grunk Voir le message
    Les parentèses sont capturante , c'est à dire que si tu les met le tableau $matches sera :
    array(
    0 => ('[1','[2')
    1 => ('1','2')
    )

    au lieu de juste

    array(
    0 => ('[1','[2')
    )
    Pourquoi est-ce que ça change entre 0 et 1 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     0 => ('[1','[2')
     1 => ('1','2')
    Qu'est-ce que qui s'est passé entre les deux ? Ah non ! Là encore 0 et 1 n'indique pas des lignes de tableaux, mais des paramètres de la fonction preg_match_all, c'est ça ? J'y suis à peu près ?

  19. #19
    Invité
    Invité(e)
    Par défaut
    Ah d'accord, ici lorsqu'on écrit $id_c[1], le [1] est un paramètre de la fonction preg_match_all et n'a rien à voir avec les tableaux php.
    Ben non.
    Tout faux.

    Documente-toi sur les array PHP... multidimensionnels.
    C'est si compliqué que ça de faire un var_dump($matches) pour voir ce qu'il contient ??




    N.B. Pourtant, je pensais que mon explication était claire...

  20. #20
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Voici un exemple :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    $pattern = "/11((aaa)(bbb))22/";
     
    $chaine  = "11aaabbb22";
     
    preg_match_all($pattern,$chaine,$array);
    var_dump($array);

    La regexp doit reconnaître une chaine de caractères = à 11aaabbb22. Et elle doit isoler (capturer) la chaine aaabbb qui correspond à la première paire de ( ). Elle doit aussi capturer la chaine aaa qui correspond à la seconde paire de ( ) et enfin ccc qui correspond à la troisième paire ( ).

    preg_match_all donne un tableau qui contient en contient 4 . Il y a donc un tableau pour chaque groupe de ( ) + 1 qui correspond à la totalité ce qui a pu être "capturé".
    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
     
    array(4) {
      [0]=>
      array(1) {
        [0]=>
        string(10) "11aaabbb22" <= totalité de la chaine "reconnue" présente dans $pattern
      }
      [1]=>
      array(1) {
        [0]=>
        string(6) "aaabbb" <= la chaine qui correspond à la capture due à la première paire ( ) dans $pattern
      }
      [2]=>
      array(1) {
        [0]=>
        string(3) "aaa"    <= la chaine qui correspond à la capture due à la seconde paire ( ) dans $pattern
      }
      [3]=>
      array(1) {
        [0]=>
        string(3) "bbb"    <= la chaine qui correspond à la capture due à la troisième paire ( ) dans $pattern
      }
    }
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/05/2013, 22h18
  2. [RegEx] Capturer liste de noms dans une chaine
    Par Rem693 dans le forum Langage
    Réponses: 1
    Dernier message: 25/10/2009, 08h13
  3. Réponses: 4
    Dernier message: 14/11/2008, 21h00

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