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 :

retrouver une séquence, sur plusieurs lignes [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut retrouver une séquence, sur plusieurs lignes
    Bonjour,

    J'ai besoin de votre aide pour une expression régulière.

    j'ai, un texte, dont certains chapitres traitent de php.

    par exemple, un article peut-etre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    "
    Le fonctionnement de maFonction() :
    <<<@!1!@>>>
     
    exemple : 
    <<<@!2!@>>>
    "
    Je souhaite utiliser la coloration syntaxique de geshi, et remplacer chaque bloc de texte entre [php] et [/php] par "<div class='code'></div>"

    voila ce que j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $strContenuHtml = "
    	Le fonctionnement de maFonction() :
    	<<<@!4!@>>>
     
    	exemple : 
    	<<<@!5!@>>>";
     
     
    preg_match_all ("/\<<<@!6!@>>>", "<div class='code'>" . $str_geshiCode . "</div>", $strContenuHtml);
     
    }
     
    echo $strContenuHtml;
    Mais la fonction considère un seul bloc, entre le premier [php] et le dernier [/php], au lieu de 2 blocs.

    Je vous remercie pour votre aide,
    Gillou.

  2. #2
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    Salut,

    J'ai pas pigé la, ils sont ou les blocs [PHP] ?


    Les boutons et existent, servez-vous en

  3. #3
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut
    en effet, le forum a modifier mon texte. le BBCode ne doit pas lui plaire...

    voila le 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
     
    $strContenuHtml = "
    	Le fonctionnement de maFonction() :
    	[---]
    	string maFonction(string variable)
    	[/---]
     
    	exemple : 
    	[---]
    	echo maFonction('hello world');
    	//affiche des trucs
    	[/---]";
     
     
    preg_match_all ("/\---](.*)\[\/---\]/is", $strContenuHtml, $arr_codes);
     
    foreach($arr_codes[1] as $str_source) {
    	$geshi = new GeSHi($str_source, 'php');
    	$str_geshiCode = $geshi->parse_code();
     
    	$strContenuHtml = str_replace("[---]" . $str_source . "[/---]", "<div class='code'>" . $str_geshiCode . "</div>", $strContenuHtml);
     
    }
     
    echo $strContenuHtml;
    Il faut remplacer [---] par [PHP]. je pense que c'est ça qui ne lui a pas plu.
    merci

  4. #4
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    OK,

    Essaye comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_match_all ("/\[php\](.*)\[\/php\]/isU", $strContenuHtml, $arr_codes);


    Les boutons et existent, servez-vous en

  5. #5
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut
    c'est magique !
    merci.
    A bientôt,

    Gilou

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

Discussions similaires

  1. Une Legend sur plusieurs lignes ou colonnes
    Par Copepode dans le forum MATLAB
    Réponses: 4
    Dernier message: 26/05/2021, 10h53
  2. [DOM] Déclarer une variable sur plusieurs lignes
    Par fgallnii dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 28/10/2008, 15h32
  3. Test d'une condition sur plusieurs lignes
    Par pichto dans le forum Langage SQL
    Réponses: 9
    Dernier message: 23/05/2007, 09h19
  4. Réponses: 2
    Dernier message: 02/05/2007, 17h08
  5. [TStringGrid] Une cellule sur plusieurs lignes.
    Par Caine dans le forum Delphi
    Réponses: 15
    Dernier message: 28/03/2007, 12h53

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