8791 sujets

Développement web côté serveur, CMS

Bonjour

je récupère des infos grâce à google image mais certaines sont entourés de caractères dont je connais pas la provenance (c'est de l'unicode?)

[B]\x3cb\x3e[/B] ma photo [B]\x3c/b\x3e[/B]
Est-ce qu'il existe un moyen de prendre cette chaîne et de n'en extraire ou restituer que le texte initial "ma photo"

merci
Bonjour,

Il s'agit d'hexadecimal, \x3C correspond à < et \x3E à >.

Le texte réel est: <b> ma photo </b>.

Plusieurs solutions pour le traitement:
-enlever ces caractères (à l'aide de str_replace() en php).
-évaluer la chaine une fois puis enlever les balises (eval() puis strip_tags() en php).
-utiliser les expressions régulières (preg_replace() en php).
Modifié par Necromantik (15 Oct 2007 - 13:38)
Necromantik a écrit :

-enlever ces caractères (à l'aide de str_replace() en php).
-utiliser les expressions régulières (preg_replace() en php).

Dans mon cas, il s'agit des balises <b> mais ça peut etre n'importe quoi en réalité (une apostrophe par exemple)

Existe-t-il une classe d'expression reguliere pour les caractères unicodes pour faire un preg_replace efficace?
car je ne me fois pas recenser tous les caracteres possibles pour les remplacer par leur équivalent Smiley cligne

merci
Si tu veux les remplacer par leurs équivalents utilise la 2eme proposition, à savoir effectue un eval() sur la chaine sous la forme:
// échapper les guillemets doubles
$str = str_replace('"', '\"', $str);
// évaluer la chaine une fois pour provoquer l'interpretation des \x00
eval('$str = "'.$str.'";');


Une autre solution qui me vient à l'esprit et devrait faire exactement la même chose:
// changer les codes hexadecimaux afin qu'ils aient la formet d'une url
$str = str_replace('\x', '%', $str);
// interpréter la chaine comme une url
$str = rawurldecode($str);