Bonjour à tous,
Tout est dans le titre :
Comment, dans une chaine de caractères, remplacer
<font color=#000000> par
<font color="#000000">
Sachant que je ne connais pas le code hexa, donc le dernier caractère.
Je sèche. Merci du tuyau.
Bonjour à tous,
Tout est dans le titre :
Comment, dans une chaine de caractères, remplacer
<font color=#000000> par
<font color="#000000">
Sachant que je ne connais pas le code hexa, donc le dernier caractère.
Je sèche. Merci du tuyau.
Je pense que ca il le savez sinon, il serai pas venu sur le topic des regex![]()
Essaye avec ca :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 // $string = ta chaîne $regex = '$<font color=(.*?)>.*?$i'; $remplace = '<font color="$1">'; echo preg_replace($regex, $remplace, $string);
Merci Blueice....mais ce regex ne retourne rien. Et bien sûr, j'essaie de comprendre pourquoi...
Exemple bidon mais complet :
Code php : 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 <?php $string = ' <div align="center"> <div class="page" style="width:100%; text-align:left"> <div style="padding:0px 25px 0px 25px" align="left"> <font color=#C4C4C4> <div align="center"> <div class="page" style="width:100%; text-align:left"> <font color=#FFF> <div style="padding:0px 25px 0px 25px" align="left"> '; $regex = '$<font color=(.*?)>.*?$i'; $remplace = '<font color="$1">'; highlight_string( preg_replace($regex, $remplace, $string)); ?>
Oui, avec highlight_string, ça retourne impec....
mais pourquoi j epeux pas l'utiliser dans une fonction du style :
Qui ne retourne rien ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function transforme($str){ $regex = '$<font color=(.*?)>.*?$i'; $remplace = '<font color="$1">'; $new = preg_replace($regex, $remplace, $str); return $new; }
![]()
Quel serait l'intérêt d'une telle fonction si c'est pour l'appeler une seule fois ?
Sinon comme ca :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 function transforme($str){ $regex = '$<font color=(.*?)>.*?$i'; $remplace = '<font color="$1">'; highlight_string(preg_replace($regex, $remplace, $str)); }
En fait, je ne comprends pas pourquoi highlight_string.
J'ai besoin d'une fonction car j'écris un flux RSS à la volée et ce genre de trucs (<font color=#000000>) ne passe pas et génère des erreurs.
J'ai donc besoin d'une fonction qui "filtre" tout ce que j'ai à incorporer pour ajouter des quotes partout où elles manquent dans l'attribut color de la balise font.
Et d'ailleurs, ai-je besoin de la balise <font> ? n'est il pas possible de remplacer :
Par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2#000000
Partout où la fonction le trouve dans une chaîne ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2"#000000"
Oui désolé, le highlight c'était pour visualiser le résultat, vire le...
et fait un simple echo.
Tu ne peux pas te passer de la balise font.
je peux donc utiliser un return et une fonction ?
Oui si tu veux ta fonction fonctionne
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 function transforme($str){ $regex = '$<font color=(.*?)>.*?$i'; $remplace = '<font color="$1">'; $new = preg_replace($regex, $remplace, $str); return $new; }
ben oui...
Mais pourquoi ceci ne retourne rien qu'une page blanche comme neige ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function transforme($str){ $regex = '$<font color=(.*?)>.*?$i'; $remplace = '<font color="$1">'; $new = preg_replace($regex, $remplace, $str); return $new; } $str = "<font color=#C4C4C4>"; echo transforme($str);
C'est la source de votre page qu'il faut regarder, n'ayant pour seul contenu une balise HTML qui sera interprétée par votre navigateur.
Merci merci à vous !
Super cool.
Bonne soirée.
Partager