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 :

suppression balise perso [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 30
    Par défaut suppression balise perso
    Bonjour,

    j'ai cherche mais j'ai pas trouve exactement la réponse à mon problème

    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
     
    //fonction des quotes
    function cb_replace2($m) {
    	global $Bdd;
    	if($m[1]>0 && is_numeric($m[1])){
    		//recherche des infos sur le commentaires selectionne
    		$res =  $Bdd -> Send_Query('SELECT c_id, c_date, c_nom , c_mail, c_texte, c_suppr FROM comment WHERE c_id=\''.$m[1].'\' AND c_suppr=\'0\'');
    		if($obj = $Bdd -> get_object($res))
    		{
     
    			$txt = $obj->c_texte;
    			$pattern = "#[citation]([^0-9])[/citation]#";
    	 		preg_match_all($pattern ,$txt, $matches, PREG_SET_ORDER);
    	 		print_r($matches);			
    			$txt = str_replace(array('&lt;','&gt;'), array('<','>'), $txt);
    		}
     
    		return utf8_decode('<blockquote><span class="or">'.$obj->c_nom.'</span> :<br />'.$txt.'</blockquote>');		
    	}
        return $m[0]; # Par défaut, on laisse la chaîne inchangée
    }
     
    function parse_texte2($texte){
    	$texte = preg_replace_callback('`\[citation\](.*)\[/citation\]`U', 'cb_replace2', $texte);
    	return($texte);
    }
    si par exemple je cite un texte qui a deja cite un precedent, cela me laisse le [citation]1[/citation]

    1er texte qui contient juste le mot test

    2eme text qui cite le 1er
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [citation]1[/citation]&lt;br /&gt;
    &lt;br /&gt;
    test 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [citation]2[/citation]&lt;br /&gt;
    &lt;br /&gt;
    test 3
    le second text aura bien le texte avec la citation
    le souci est au niveau du 3eme qui cite un texte qui a cité un autre texte
    au final a l'affichage ce ma donne ca :

    test1 :
    [citation]3[/citation]

    test 12

    c'est le citation 3 que je veux aussi qu'il ne soit pas apparent et remplacer par du vide
    ma fonction marche pour les deux premier mais pas pour le 3eme

    vous auriez une idee ?
    merci
    Kenji

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    Je n'ai absolument rien compris.
    Peux-tu réexpliquer en suivant cette démarche ?
    1. le texte que tu as
    2. le résultat que tu veux obtenir
    3. la regex que tu as utilisée
    4. en quoi cela ne va pas

    Merci !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 30
    Par défaut
    hello

    desole c''est vrai que c'est un peu confus

    mais j'ai reussi a faire ce que je voulais au final

    en fait mon souci etait que j'avais plusieurs fois [quotex]texte[/quote], et qu'il ne j'arrivais a parser qu'une seule fois le quote dans un texte alors qu'il 'en avais plusieurs

    j'ai reussi finalement en faisant cela :

    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
    		function texte_a_parser($matches){
    			global $Bdd;
    			$res =  $Bdd -> Send_Query('SELECT c_id, c_date, c_nom , c_mail, c_texte, c_texte_aff, c_suppr FROM comment WHERE c_id=\''.$matches[1].'\' AND c_suppr=\'0\'');
    			if($obj = $Bdd -> get_object($res))
    			{
    				$nom = $obj->c_nom;
    			}				
    			$texte = '<blockquote><span class="or">'.$nom.' à écrit :</span> <br />'.$matches[2].'</blockquote>';			
    			return $texte;	
     
    		}
     
     
     
    		function parse_texte_comment($texte){	
    			$texte = preg_replace_callback('`\[quote:(.*)\](.*)\[/quote\]`U', 'texte_a_parser', $texte);
    			return $texte;
    		}

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

Discussions similaires

  1. [JDOM] Suppression balises + éléments
    Par Tuxico dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 04/12/2008, 13h32
  2. [JDOM] xpath+jdom+regex ==> suppression balise
    Par fasfousba dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 14/11/2008, 10h27
  3. Suppression balises (regex)
    Par maxr397 dans le forum Langage
    Réponses: 5
    Dernier message: 16/05/2008, 13h49
  4. problème regex suppression balises HTML
    Par crazydindon dans le forum Langage
    Réponses: 6
    Dernier message: 11/09/2007, 14h39
  5. Suppression balise HTML en Javascript
    Par calahaan dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/01/2007, 22h18

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