Recevoir les caractères entre 2 balises

Fermé
lolosb Messages postés 292 Date d'inscription samedi 31 octobre 2009 Statut Membre Dernière intervention 20 février 2015 - 27 janv. 2011 à 18:33
lolosb Messages postés 292 Date d'inscription samedi 31 octobre 2009 Statut Membre Dernière intervention 20 février 2015 - 1 févr. 2011 à 20:12
Bonjour,

Je suis en train de coder un mod pour phpBB et là, j'aimerai bien savoir comment recevoir en php les caractères entre deux balises...
Exemple:
J'ai cette chaine de caractères dans la variable $chaine_debut:
J'ai la chaine ceci est du texte <!-- DEBUTBALISE -->, mais ceci en est encore!<!-- FINBALISE -->

Puis, dans la variable $chaine_voulue est après enregistré:
, mais ceci en est encore!

La chaine dans $chaine_voulue, j'aimerais l'envoyer à une fonction que j'ai créé, donc ubl($chaine_voulue);
Et puis j'aimerai retourner le texte avec un return dans la fonction pour que "mais ceci en est encore!" est après de nouveau dans la variable $chaine_debut, juste modifié par ma fonction.

Merci beaucoup ;)
A voir également:

11 réponses

nan pour faire le retour dans la balise rien de plus simple quand tu fais ton return de ta fonction tu inclus les balises dedans.

sinon le preg_match marche comme sa:

<?php

	$chaine = '<!-- BbcodeUserBackLinkmodSTART -->ici le texte a récupérer<!-- BbcodeUserBackLinkmodEND --> '; // Ta chaine de caractère pas bonne 
	$pattern = '/<!-- BbcodeUserBackLinkmodSTART -->(.*?)<!-- BbcodeUserBackLinkmodEND -->/'; // Ton expression régulière qui cherche le contenu entre les balises
	preg_match($pattern, $chaine, $matches); // Le preg_match qui retourne le contenu entre les balise
	$matches = $matches[0]; // j'écrase le tableau
	print_r($matches); // J'affiche le resultat
	
	taFonctionMagique($matches);

?>
1
lolosb Messages postés 292 Date d'inscription samedi 31 octobre 2009 Statut Membre Dernière intervention 20 février 2015 32
1 févr. 2011 à 17:33
Personne n'a une réponse?

Merci
0
Franchement j'ai rien pigé à ce que tu raconte si tu donnais le code je crois que sa irais plus vite.
0
lolosb Messages postés 292 Date d'inscription samedi 31 octobre 2009 Statut Membre Dernière intervention 20 février 2015 32
1 févr. 2011 à 17:53
Ok, :)
Le problème c'est que j'ai pas de code juste qu'à maintenant...
Alors c'est en fait simple mon problème:
J'ai une chaine de caractaires et j'aimerai envoyer un certain texte qui est contenu dans cette chaine entre deux balises à une fonction.
J'ai trouvé ce code:
    $replace_ubl =  ubl('$1');
    $text = preg_replace('#' . '<!-- BbcodeUserBackLinkmodSTART -->' . '(.*?)' . '<!-- BbcodeUserBackLinkmodEND -->' . '#', $replace_ubl, $text);

dont $text est la variable avec le texte et <!-- BbcodeUserBackLinkmodSTART --> et l'autre balise sont les balises entre les quels se trouve le texte que je souhaites envoyer à une fonction...
Est-ce code correct? Car je reçois bien le texte dans ma fonction, mais je ne peux pas le décoder en utf-8...

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
d'accord tu veut récupérer le contenu qui ce trouve entre <!-- BbcodeUserBackLinkmodSTART --><!-- BbcodeUserBackLinkmodEND -->

Donc pour sa il faut utiliser preg_match pas preg_replace regarde la doc php tu y est presque le plus dur étant l'expression régulière.

Pour l'encodage des caractère il y a utf8_encode(); et utf8_decode();
0
lolosb Messages postés 292 Date d'inscription samedi 31 octobre 2009 Statut Membre Dernière intervention 20 février 2015 32
1 févr. 2011 à 18:31
Oui oui, pour l'encodage utf-8, j'avais la fonction, mais quelques problèmes...
Heu.. Pourrais tu me dire s.t.p. comment utiliser le preg_match

Mais une fois recuppéré le contenu entre les balises, je veux le modifier avec ma fonction et le mettre après de nouveau à la place où il était grace à un return;, ça marche aussi avec cette fonction?

Merci beaucoup! ;)
0
lolosb Messages postés 292 Date d'inscription samedi 31 octobre 2009 Statut Membre Dernière intervention 20 février 2015 32
1 févr. 2011 à 19:07
Donc si je mets
$pattern = '/<!-- BbcodeUserBackLinkmodSTART -->(.*?)<!-- BbcodeUserBackLinkmodEND -->/'; 
	preg_match($pattern, $text, $matches);
$matches = $matches[0];
ma_fonction($matches);

j'ai le texte entre les balises dans la variable $matches et je peux mettre dans la fonction p.ex:
function ma_fonction($texte)
{
utf8_encode($texte);
return '<b>'.$texte.'</b>';
}

et puis dans la variable $test (du début) il y a
<b>mon texte</b>
et plus
mon texte
?

Merci beaucoup à toi de vouloir m'aider... ;)
0
oui c'est exactement sa.
0
enfin c'est pas dans la variable que tu aura les balise mais dans le retour de ta fonction

exemple :
$texte = 'mon texte';
echo $texte; // retourne mon texte

$texte = ma_fonction($texte);
echo $texte; // retourne <b>mon texte</b>

function ma_fonction($texte)
{
$str = utf8_encode($texte);
return '<b>'.$str.'</b>';
}
0
lolosb Messages postés 292 Date d'inscription samedi 31 octobre 2009 Statut Membre Dernière intervention 20 février 2015 32
1 févr. 2011 à 20:03
Ahhh, c'est en fait de ça que j'ai eu peur,
car la variable $text est définie et j'aimerai remplacer dans cette variable même le texte entre les balises par le texte modifié...
Comment peux-je faire celà ?

Merci
0
La je t'invite a aller apprendre le php et le html sur le site du zero
https://openclassrooms.com/fr/
parce qu'a ce rythme tu me donne tes accès et je te le fais ton code.

Bon courage c'est pas dur.
0
lolosb Messages postés 292 Date d'inscription samedi 31 octobre 2009 Statut Membre Dernière intervention 20 février 2015 32
1 févr. 2011 à 20:12
J'ai appris le php comme l'html :|
vu qu'il s'aggit d'une fonction que je cherche, j'ai demandé ici, suite à l'échec de recherche...
en haut de ce message, j'ai demandé autant, car je m'en doutais que la fonction n'arrivait pas à faire ce que je voulais.

Bonne soirée
0