Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/11/2006, 09h57   #1
Membre habitué
 
Avatar de Alvaten
 
Homme
Étudiant
Inscription : novembre 2006
Messages : 169
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 23
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2006
Messages : 169
Points : 143
Points : 143
Par défaut remplacer un caractère

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
Alvaten est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 10h24   #2
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835

Et bienvenue à toi sur les forums de developpez.com !

Je te suggere de jeter un oeil à cette page : http://php.net/str_replace
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 10h40   #3
Membre habitué
 
Avatar de Alvaten
 
Homme
Étudiant
Inscription : novembre 2006
Messages : 169
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 23
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2006
Messages : 169
Points : 143
Points : 143
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 :
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
Alvaten est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 10h50   #4
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
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 :
1
2
3
$str = "[texte]";
$str = str_replace('[', '<', $str);
echo htmlentities($str);
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 10h51   #5
Membre régulier
 
Avatar de zamanika
 
Inscription : novembre 2003
Messages : 106
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 106
Points : 98
Points : 98
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
zamanika est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 11h07   #6
Membre habitué
 
Avatar de Alvaten
 
Homme
Étudiant
Inscription : novembre 2006
Messages : 169
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 23
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2006
Messages : 169
Points : 143
Points : 143
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.
Alvaten est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 11h38   #7
Rédacteur
 
Avatar de BrYs
 
Inscription : octobre 2002
Messages : 2 016
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2002
Messages : 2 016
Points : 2 038
Points : 2 038
Un truc de ce style ça doit marcher (sauf si ça marche pas ).
Je ne l'ai pas testé

Code :
1
2
$texte = '[var=texte][var]';
preg_replace('/\[(.+)=(.+)\]\[\1\]/','<\1="\2"><\1>',$texte);
BrYs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 11h46   #8
Membre habitué
 
Avatar de Alvaten
 
Homme
Étudiant
Inscription : novembre 2006
Messages : 169
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 23
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2006
Messages : 169
Points : 143
Points : 143
Non, ca marche pas
Alvaten est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 11h48   #9
Rédacteur
 
Avatar de BrYs
 
Inscription : octobre 2002
Messages : 2 016
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2002
Messages : 2 016
Points : 2 038
Points : 2 038
montre le code de ton test.
BrYs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 11h57   #10
Membre régulier
 
Avatar de zamanika
 
Inscription : novembre 2003
Messages : 106
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 106
Points : 98
Points : 98
Un truc de ce style (attention, s'affiche en code source ) donc à améliorer avec htmlentities pour un affichage.
Code :
1
2
3
 
$str = '[var=texte][var] ';
$str=preg_replace('/\[var\=(.*)]\[var\]/Us', '<var="$1"><var>',$str);
zamanika est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 12h02   #11
Rédacteur
 
Avatar de BrYs
 
Inscription : octobre 2002
Messages : 2 016
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2002
Messages : 2 016
Points : 2 038
Points : 2 038
Citation:
Envoyé par zamanika
Un truc de ce style (attention, s'affiche en code source ) donc à améliorer avec htmlentities pour un affichage.
Code :
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.
BrYs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 12h25   #12
Membre habitué
 
Avatar de Alvaten
 
Homme
Étudiant
Inscription : novembre 2006
Messages : 169
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 23
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2006
Messages : 169
Points : 143
Points : 143
Ca marche merci!
Alvaten est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h13.


 
 
 
 
Partenaires

Hébergement Web