J'essaie d'éliminer la marque gauche-droite (\ u200e) et la marque droite à gauche (\ u200f) à partir d'une chaîne avant de le coder comme JSON. Aucun des éléments suivants ne semble fonctionner:
$s = mb_ereg_replace("\u200e", '', $s); $s = preg_replace("#\u200e#u", '', $s); $s = preg_replace("#\u200e#", '', $s);
6 Réponses :
Avez-vous essayé d'encoder votre fichier de script dans UTF-8 et de taper (ou de copier + coller) les caractères de là? p>
Qu'en est-il de l'utilisation de et, dans votre cas, comme vous avez plusieurs caractères différents à remplacer, vous pouvez les remplacer tous dans un appel sur fonctionne-t-il pour votre problème? p> p> str_replace code> et codez ce caractère à l'aide de ses codes de caractères; Quelque chose comme ça, peut-être:
str_replace code>: p>
Votre évasion Unicode est fausse, cela devrait fonctionner: test: p> ou, utiliser str_replace () code>: p>
En fait, cela fonctionne. Mon test était mal conçu. Réponse mise à jour pour inclure str_replace (). pourrait probablement utiliser STRTR () également.
Qu'est-ce que c'est exactement \ x0e?
@Iankit \ x0e code> est l'équivalent REGEX de
chr (0x20) code>
Pourriez-vous essayer cela? son codage UTF8 de 200E et 200f ou avec str_replace p>
Essayez ceci
Après la lutte avec cette question pendant quelques jours, j'ai enfin trouvé la réponse!
$str = preg_replace('/(\x{200e}|\x{200f})/u', '', $str);
travaillé pour moi où @ Tmont Réponse (avec des votes supérieurs) n'a pas
Quel codage est la chaîne dans?