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 :

Problème RegExp, encore un [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 32
    Par défaut Problème RegExp, encore un
    Bonjour à toutes et tous,

    Sommairement :
    Issues d'une Bdd Mysql, je récupère des valeurs de champs textes saisis via htmlharea dans une variable PHP, le contenu de ces champs provient parfois d'un copier collé de texte Word.

    Un petit coup de traitements et je supprime quelques balises indésirables provoquant des erreurs pour la suite de mon script.
    Le hic est qu'il me reste des balises susceptibles d'être mal interprétées aussi, autant s'en séparer : ces balises (merci micr.soft...) ont des formats particuliers et bien sur dynamiques représentées comme suit :

    <st1:personname w:st="on">contenu très variable</st1:personname>
    ou
    <o:p></o:p>
    ou encore
    <st1 w:st="on">:</st1>
    J'ai testé plusieurs expressions sans le moindre résultat :
    if(mb_eregi("^</[a-z0-9.-_]:[a-z0-9.-_]>$", $TxtOut)) // par exemple
    if(mb_eregi('^<([a-z0-9.-_]:[a-z0-9.-_])(.*?)([a-z0-9.-_]:[a-z0-9.-_]=")(.*?)">$', $TxtOut)) ....

    Pourriez-vous me conseiller ? je précise que ma chaine de caractère contenant bien sur d'autre balises html classiques et validées.

  2. #2
    Membre averti
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Par défaut
    Bonjour,
    Essaye ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reg='^<[a-z0-9.-_]+:[a-z0-9.-_]+[ :="a-z]*>(.*)<[/a-z0-9.-_]+:[a-z0-9.-_]+>^';
    (j'ai utlisé preg_replace par contre, donc remplace p-e le dernier ^ par $ )

    un code qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $al='<st1:personname>contenu très vaariable</st1:personname>';
    echo (preg_replace ($reg,'\\1', $al)).'<br />';
    $al='<st1:personname w:st="on">contenu très variable</st1:personname>';
    echo (preg_replace ($reg,'\\1', $al)).'<br />';
     
    $al='<o:p>contenu très variable</o:p>';
    echo (preg_replace ($reg,'\\1', $al));
     
    /* changement de regexp */
    $reg='^<st1.*>(.*)</st1>^';
    $al='<st1 w:st="on">:</st1>';
    echo (preg_replace ($reg,'\\1', $al)).'<br />';
    J'ai juste modifié ta regExp pour qu'elle tourne, mais je ne me suis posé aucune question théologique ou fondamentale :p (Ca marche, mais je sais pas si c'est "beau")

    La derniere ligne n'est pas parsée avec la reg1, de peur d'être trop "vague" après et de degager du html .
    Si des pros du htaccess te filent une réponse plus generique, ca serait nickel, mais sinon on peut aussi en utiliser la deuxième reg proposée:
    $reg='^<st1.*>(.*)</st1>^';
    L'avantage est que tu es sur de pas remplacer de HTML, le problème est qu'il t'en faut du coup une par balise .


    note que c'est du temporaire, attends des réponses plus abouties des profs .
    Bonne continuation .
    Sayn.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 32
    Par défaut
    Désolé mais en ce qui me concerne ça ne donne rien :

    si je teste sur une chaine type,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <b><span style="font-family: Verdana;">Su<span style="font-style: italic;">per test à fa</span>ire !!!!!</span><br><o:p></o:p></b><o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName">&nbsp;</o:smarttagtype>
    j'utilise ton code pour test dans la fonction suivante après tout on s'entraide
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    function SupCodWord2($Txt)
    {   
     
        if($Txt==''){ 
        	return '';
        }else{
     
    		$tmp0 = $Txt;
    		echo  "<br>L 61 --------> ".$tmp0."<br>";
    		//$tmp0 = strip_tags($tmp0); echo  "<br>L 61 --------> ".$tmp0."<br>";
    		if(mb_eregi('</style>
    <![endif]-->
     
    ',$tmp0)){
    			$tmp0 = explode('</style>
    <![endif]-->
     
    ',$tmp0);
    			// --  
        		echo  "<br>L 72 --------> ".$tmp0[0]."<br>"; 
    			$TxtOut = $tmp0[1]; 
    			echo  "<br>L 74 --------> ".$TxtOut."<br>";
     
    		}else{
    			$TxtOut = $tmp0; 
    			echo  "<br>L 78 --------> ".$tmp0[0]."<br>"; 
    		}
    		// surcharge 
        	$TxtOut = mb_ereg_replace(' class="MsoNormal"','',$TxtOut);
        	echo  "<br>L 82 --------> ".$TxtOut."<br>";
     
     		$reg='^<[a-z0-9.-_]+:[a-z0-9.-_]+[ :="a-z]*>(.*)<[/a-z0-9.-_]+:[a-z0-9.-_]+>^';
    		$TxtOut = preg_replace ($reg,'\\1', $TxtOut);
        	echo  "<br>L 86 --------> ".$TxtOut."<br>";
     
    		/*$reg2='^<st1.*>(.*)</st1>^';
    		$TxtOut = preg_replace ($reg2,'\\1', $TxtOut);	
    		*/		
    		$reg3='^<.*[a-zA-Z0-9.-_]+:[a-zA-Z0-9.-_]*>(.*)</.*[a-zA-Z0-9.-_]+:[a-zA-Z0-9.-_]*+>^';	
    		$TxtOut = (preg_replace ($reg3,'\\1', $TxtOut));
     
    		echo  "<br>L 94 --------> ".$TxtOut."<br>";
    	}
    }
    au final donc rien ne change ... ou bien je suis trop fatigué pour ne pas voir l'évidence ou bien je dois aller faire un tour chez m'sieur neurones pour préparer une commande et livraison

  4. #4
    Membre averti
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Par défaut
    Re!

    J'ai découpé le problème en deux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $regdeb='$<[a-z0-9]+\:[a-z0-9]+[^>]*>$';
    $regfin='$</[a-z0-9]+\:[a-z0-9]+>$';
     
    $al='<b><span style="font-family: Verdana;">Su<span style="font-style: italic;">per test à fa</span>ire !!!!!</span><br><o:p></o:p></b><o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName">&nbsp;</o:smarttagtype>';
    et ca marche. Je ne connais aps de balises html de cette forme :

    <qqch:autrechose> et idem pour fermant, donc ca semble convenir.
    Je regarde rapidos pour celui de la forme:
    <qqch qqchautre:qqchtrois>

    Dit moi si cela te conviens .
    Sayn.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 32
    Par défaut

    attention ce monsieur est un violent : et comment que ça marche !
    et puis un 3ème car il le vaut bien
    effectivement deux passages s'avèrent nécessaires et c'est d'ailleurs plus simple à localiser.
    Ces balises sont issues d'un copié collé de texte ouvert sous microS..t Word, genre 2003-2007 collé dans un textarea géré sous htmlarea et inséré en vrac dans un Bdd Mysql !! => pourquoi faire simple ?

    Cependant concernant les balises du genre :
    <qqch qqchautre:qqchtrois>
    je me demande si cela pourrait marcher => '$<[a-z0-9]* [a-z0-9]+\:[a-z0-9]+>$' , je vais tester et te tiens informé, et surtout MERCI !

  6. #6
    Membre averti
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Par défaut
    Et voila
    regdeb et regfin c'est pour supprimer celles "normales":
    <qqch:autre cequevousvoulez>

    un petit match pour trouver balises
    <nombalise aaa:cequevousvoulez>, dont on va retenir juste "nombalise".
    Ensuite, on fait un replace des </nombalise>
    et ensuite on fait un replace des balises d'ouvertures

    Probablement pas optimisé, avec des risques d'erreurs , mais ca a l'air de marcher . Mais attends vraiment le passage des experts, ca t'evitera des deconvenues .

    Un petit truc, la balise <balise style='color:red'> n'aura aucun problème car avant le : on ne doit avoir que des lettres ou chiffres. Par contre, si tu as <balise qqch:autrechose> ca va etre viré

    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
     
    <?php 
    $regdeb='$<[a-z0-9]+\:[a-z0-9]+[^>]*>$';
    $regfin='$</[a-z0-9]+\:[a-z0-9]+>$';
     
    $regdeux='$<([a-z0-9]+) [a-z0-9]+:[^>]*>$';
     
     
    $al='<b><span style="font-family: Verdana;">Su<span style="font-style: italic;">per test à fa</span>ire !!!!!</span><br><o:p></o:p></b><o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName">&nbsp;</o:smarttagtype><st1 w:st="on">youpi ca marchee aussi</st1>';
     
    $al=(preg_replace ($regdeb,'\\1', $al));
    $al=(preg_replace ($regfin,'\\1', $al));
    preg_match($regdeux,$al,$test);
    foreach($test as $key => $val){
      if($key){
        $al=preg_replace('$</'.$val.'>$','',$al);  
      }
    }
    $al=preg_replace($regdeux,'',$al);
    echo $al;
    Je retourne bosser !
    Bonne soirée,
    Sayn.

    PS: ca a l'air d'etre un beau bazard tout ca . Bon courage pour la suite :p.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 32
    Par défaut
    résultat de test

    chaine en test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $t='<qqch qqchautre:qqchtrois>blablabla</qqch qqchautre:qqchtrois>';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $regdeb='$<[a-z0-9]* [a-z0-9]+\:[a-z0-9]+[^>]*>$';
     
    $regfin='$</[a-z0-9]* [a-z0-9]+\:[a-z0-9]+>$';
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $t = (preg_replace ($regdeb,'\\1', $t));
    ça corrige déjà la balise de début et de fin ???? je m'interroge donc sur le fait que ça puisse me supprimer en cascade toutes les balises rencontrées ensuite ...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 32
    Par défaut
    bien vu l'aveugle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    echo '<br>on test ';
    $t='<qqch qqchautre:qqchtrois>blablabla</qqch qqchautre:qqchtrois>';
    echo $t;
    echo '   <b>REGARDE MOI JE SUIS EN GRAS </b>';	
     
    //$regdeb='$<[a-z0-9]* [a-z0-9]+\:[a-z0-9]+[^>]*>$'; // supprime tout
     $regdeb='$<[a-z0-9]* [a-z0-9]+\:[a-z0-9]+>$';
    $regfin='$</[a-z0-9]* [a-z0-9]+\:[a-z0-9]+>$';
     
    $t = (preg_replace ($regdeb,'\\1', $t));	echo  "<br><br><br>L 171 --------> ".$t."<br>";
    => '<b>REGARDE MOI JE SUIS EN GRAS' à bel et bien disparu !

  9. #9
    Membre averti
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Par défaut
    Lol on va finir par y arriver
    par contre, je n'ai pas compris le problème

    Le <b>regardez moi je suis en gras</b> a pas été affecté a $t donc c'est normal, non?

    Ensuite, la balise <b> n'est pas "prise" par la regexp car il faut <X Y:Z> où X,Y, Z et le : sont obligatoires.

    Sayn.


    Post 30 min plus tard

    On va finir par être bon .
    Voila la dernieère version. Finalement, deux regExp. la premiere qui s'occupe de X:Y* (ouvrante et fermante)
    et la deuxième de X Y:*
    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
     
    <?php
    //chaine a parser
    $al='<qqch qqchautre:qqchtrois>blablabla</qqch qqchautre:qqchtrois><b>REGARDE MOI JE SUIS EN GRAS </b>
    <span style="font-family: Verdana;">Su<span style="font-style: italic;">per test à fa</span>ire !!!!!</span>
    <br><o:p></o:p></b><o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName">&nbsp;</o:smarttagtype><st1 w:st="on">youpi ca marchee aussi</st1>';
     
     
    //vire  <X:Y Z> où X,Y et : sont obligatoires, Z fac   Il s'occupe aussi des balises fermantes!
    $regun='$</?[a-z0-9]+\:[^>]+>$';
    //recup balises ouvrantes du type <X Y:Z> ou X et Y et : sont obligatoires, le reste fac
    $regdeux='$<([a-z0-9]+)[ ]?[a-z0-9]+\:[^>]*>$';
     
     
    //remplace via reg1
    $al=(preg_replace ($regun,'\\1', $al));
     
    //recheche reg2
    preg_match_all($regdeux,$al,$test);
    //parcours pour virer toutes les balises fermantes du genre
    foreach($test as $val){
        $al=preg_replace('$</'.$val[1].'[^>]*>$','',$al);  
    }
    //vire toutes les balises ouvrantes trouvées
    $al=preg_replace($regdeux,'',$al);
    echo $al;
    Tu me dira .
    Sayn.

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Salut ,



    J’espère que j’ai bien compris ce qu’il faut et que ceci pourra vous aider:


    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php 
     
    //chaine a parser
    $al='<qch deux:trois>BLABLA</qch deux:trois><br/>
    <b>JE SUIS EN GRAS </b><br/>
    <span style="font-family: Verdana;">MAR<span style="font-style: italic;">MEL</span>ADE</span><br/>
    <o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName">
    chronologie</o:smarttagtype><br/>
    <br> <o:p></o:p></b><br/> 
    <br>           <o:p>amande</o:p></b><br/>
    <st1:personname w:st="on">contenu très variable</st1:personname><br/>
               <st1 w:st="on">youpi ca marche aussi</st1>';
     
    $regaff = '#.+?(?:\n|\z)#';
    preg_match_all($regaff,$al,$aff);
    echo 'chaine a parser :<br/><br/>';
    foreach($aff[0] as $key => $w){
    	echo htmlspecialchars($w).'<br/>';
    }
     
    echo '<br/>-----------------------------------------------------------<br/><br/>'
    	.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dans la balise de fin :<br/>'
    	.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * si groupes 3 et 4: alors \\\\2\\\\4<br/>'
    	.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * si groupes 3 seul: alors \\\\2<br/>'
    	.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * si pas de groupe 3: alors \\\\1<br/><br/>';
     
    $c = '[a-z0-9._-]+';
    $reg = '#<(('.$c.')((:'.$c.')? '.$c.')?:[^>]+)>'.'[^<]+'.'</(?(3)(?(4)\\2\\4|\\2)|\\1)>#';
    preg_match_all($reg,$al,$ma,PREG_SET_ORDER);
     
    foreach($ma as $val){
    	foreach($val as $key => $y){
    		if ($key==0){
    			echo 'match    : '.htmlspecialchars($y).'<br/>';}
    		else{
    			echo 'groupe '.$key.' : '.$y.'<br/>';}
    	}
    	echo '<br/>';
    }
     
     ?>

    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
    33
    chaine a parser :
     
    <qch deux:trois>BLABLA</qch deux:trois><br/> 
    <b>JE SUIS EN GRAS </b><br/> 
    <span style="font-family: Verdana;">MAR<span style="font-style: italic;">MEL</span>ADE</span><br/> 
    <o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName"> 
    chronologie</o:smarttagtype><br/> 
    <br> <o:p></o:p></b><br/> 
    <br> <o:p>amande</o:p></b><br/> 
    <st1:personname w:st="on">contenu très variable</st1:personname><br/> 
    <st1 w:st="on">youpi ca marche aussi</st1>
     
    -----------------------------------------------------------
     
         Dans la balise de fin :
           * si groupes 3 et 4: alors \\2\\4
           * si groupes 3 seul: alors \\2
           * si pas de groupe 3: alors \\1
     
    match : <o:p>amande</o:p>
    groupe 1 : o:p
    groupe 2 : o
     
    match : <st1:personname w:st="on">contenu très variable</st1:personname>
    groupe 1 : st1:personname w:st="on"
    groupe 2 : st1
    groupe 3 : :personname w
    groupe 4 : :personname
     
    match : <st1 w:st="on">youpi ca marche aussi</st1>
    groupe 1 : st1 w:st="on"
    groupe 2 : st1
    groupe 3 : w

  11. #11
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    Et strip_tags ?

    J'ai testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    $str = '<st1:personname w:st="on">contenu très variable</st1:personname>
    ou 
    <o:p></o:p>
    ou encore 
    <st1 w:st="on">:</st1>';
     
    $ret = strip_tags($str);
     
    echo $ret;
    Et ça me donne :
    contenu très variable
    ou

    ou encore
    :
    C'est pas plus simple ?

  12. #12
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Tu as raison, BornBanane.

    Mais comme PHP n’est pas ma langue maternelle, je ne connaissais pas cette fonction strip_tags().

    Je suis cependant impardonnable: PHP étant spécialisé en conception de site web, j’aurais dû avoir le réflexe de me dire qu’il devait bien exister une telle fonction, comme je l’ai eu pour chercher et tropuver htmlspecialchars().

    T’es pas une banane, BornBanane !




    Mais il faut juste compléter ton code avec un paramètre optionnel allowable_tags :
    string strip_tags ( string str , string allowable_tags )



    car ce que veut Ronin d’après ce que j’ai compris c’est n’éliminer que certaines balises de formats particuliers.
    $ret = strip_tags($al,'<p><br><span>');

    la seule difficulté est alors de savoir quelles balises on veut garder et les inscrire dans la chaîne argument du paramètre allowable_tags

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 32
    Par défaut
    euh Désolé je viens juste de reprendre le fil de la discussion : une autre casserole de lait sur le feu !

    Donc, une petite synthèse :

    $t qui n'incrémente pas le ' <b>REGARDE MOI JE SUIS EN GRAS </b>' : pas bien fatigué oui mais faut pas que déco..er !!
    Donc au finish après avoir incrémenter ce bout de chaine et après traitement par :
    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
     
    $regdeb='$<[a-z0-9]+\:[a-z0-9]+[^>]*>$';
    		$TxtOut = (preg_replace ($regdeb,'\\1', $TxtOut));echo  "<br><br><br>L 120 --------> ".$TxtOut."<br>";
    		$regfin='$</[a-z0-9]+\:[a-z0-9]+>$';	
    		$TxtOut = (preg_replace ($regfin,'\\1', $TxtOut));	echo  "<br><br><br>L 122 --------> ".$TxtOut."<br>";
     
    d'une part et suivi par  : 
     
    $regdeb='$<[a-z0-9]* [a-z0-9]+\:[a-z0-9]+[^>]*>$'; // supprime tout
    $t = (preg_replace ($regdeb,'\\1', $t));	
    // => déjà là ca marche !!! :ccool:
     
    $regfin='$</[a-z0-9]* [a-z0-9]+\:[a-z0-9]+>$';
    $t = (preg_replace ($regfin,'\\1', $t));
    // parce que le gars il est borné : ca marche aussi !! :ccool:
    Donc au final pour l'heure tous les cas "connus" sont traités sans affecter d'autres bouts de chaine.

    Je finis en ajoutant que le 'strip_tags' m'écrase effectivement la mise en forme du texte, nécessaire à son affichage, je l'avais intégré mais face à son comportement quelque peu macro-gourmand j'avais renoncé à y faire appel.
    So : jusqu'ici ça marche plutôt pas mal aussi vais-je tester la fonction à plus grande échelle et répertorier les cas "inconnus".
    Donc un grand merci tout plein à vous et surtout je vous souhaite un excellent week end du 1er Mai et pas seulement parce que vous le valez bien

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

Discussions similaires

  1. Problème regexp \1
    Par max3513 dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2015, 17h58
  2. problème regexp et accents
    Par umbre42 dans le forum Général Python
    Réponses: 2
    Dernier message: 30/06/2011, 14h14
  3. Problème fieldset : Encore une différence FF et IE7
    Par BassT4ken dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 27/03/2009, 09h31
  4. Problème regexp
    Par L0rent dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/04/2006, 11h59
  5. Problème regexp
    Par Yux dans le forum Langage
    Réponses: 8
    Dernier message: 18/02/2006, 19h41

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