Boujour,
Je cherche a remplacer tout les caractère [ par < et ] par > avec RegEx. le problème est que le [ est directement suivit d'une chaîne. ex:
[text] diviendrait <text>.
Merci
Boujour,
Je cherche a remplacer tout les caractère [ par < et ] par > avec RegEx. le problème est que le [ est directement suivit d'une chaîne. ex:
[text] diviendrait <text>.
Merci
Et bienvenue à toi sur les forums de developpez.com !
Je te suggere de jeter un oeil à cette page : http://php.net/str_replace
Merci mais il y a un toujours problèeme, si je change une lettre ça marche mais pas si j'esssaie de changer par < ou >.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 // code qui fonctionne $str = "[texte]"; $str = str_replace('[', '/', $str); echo $str; //donne /texte] // code qui ne fonctionne pas $str = "[texte]"; $str = str_replace('[', '<', $str); echo $str; // affiche une page blanche
La vérité est ailleurs
<texte> est considéré comme une balise html (et donc invalide) par ton navigateur.
Regarde le source de ta page dans ton navigateur
si tu veux afficher tes '<', essaie ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $str = "[texte]"; $str = str_replace('[', '<', $str); echo htmlentities($str);
Ton script fonctionne correctement : regarde le code source de la page blanche, le remplacement est effectué. Il n'y a simplement pas d'affichage car le < est interprété comme un début de balise html
[Edit]Mr N a été plus vif que moi
Merci, j'aurrai du y penser tous seul, ca fait quand même trois ans que je fait du php et de l'html .
J'ai malgès tout encore un problème , j'aimerai changer [var=texte][var] en <var="texte"><var>. Tout ce que j'arrive a faire est <var="texte><var> (" manquant).
note: "var" ne change jamais mais "texte" est diférent à chaque fois!
Merci.
Un truc de ce style ça doit marcher (sauf si ça marche pas ).
Je ne l'ai pas testé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $texte = '[var=texte][var]'; preg_replace('/\[(.+)=(.+)\]\[\1\]/','<\1="\2"><\1>',$texte);
# La rubrique Web
# Javascript / PHP / Flash / (X)HTML / CSS
# Les FAQs
# Les Sources
# Mon profil LinkedIn
Non, ca marche pas
montre le code de ton test.
# La rubrique Web
# Javascript / PHP / Flash / (X)HTML / CSS
# Les FAQs
# Les Sources
# Mon profil LinkedIn
Un truc de ce style (attention, s'affiche en code source ) donc à améliorer avec htmlentities pour un affichage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $str = '[var=texte][var] '; $str=preg_replace('/\[var\=(.*)]\[var\]/Us', '<var="$1"><var>',$str);
C'est à peu de chose pret la meme chose que moi. 0 la différence que la mienne est plus générique sur les balises. Et pour les Us, dans ce cas il n'y a pas d'interet.Envoyé par zamanika
# La rubrique Web
# Javascript / PHP / Flash / (X)HTML / CSS
# Les FAQs
# Les Sources
# Mon profil LinkedIn
Ca marche merci!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager