Recevoir les caractères entre 2 balises
lolosb
Messages postés
292
Date d'inscription
Statut
Membre
Dernière intervention
-
lolosb Messages postés 292 Date d'inscription Statut Membre Dernière intervention -
lolosb Messages postés 292 Date d'inscription Statut Membre Dernière intervention -
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:
Puis, dans la variable $chaine_voulue est après enregistré:
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 ;)
--
bien cordialement,
Administrateur LOLOSB© productions
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 ;)
--
bien cordialement,
Administrateur LOLOSB© productions
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); ?>
-
Personne n'a une réponse?
Merci -
Franchement j'ai rien pigé à ce que tu raconte si tu donnais le code je crois que sa irais plus vite.
-
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 -
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(); -
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! ;) -
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 plusmon texte
?
Merci beaucoup à toi de vouloir m'aider... ;) -
-
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>';
}
-
-
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 -
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. -
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