2014-09-01 3 views
0

J'ai une chaîne comme ceci:comment nettoyer la chaîne Persian en php

<div class="myclass"> 
ما قصد داریم تنها کاراکترهای فارسی را خارج کنیم. اما مشکلاتی پیش رو داریم, از جمله کاراکترهای خاص. آیا راهی هست؟ لطفا راهنمایی کنید. 
</div> 

maintenant, je veux que mon sortie soit comme celui-ci:

ما قصد داریم تنها کاراکترهای فارسی را خارج کنیم اما مشکلاتی پیش رو داریم از جمله کاراکترهای خاص آیا راهی هست لطفا راهنمایی کنید 

je ne peux pas utiliser str_replace ou preg_replace parce que un certain temps il y a un certain caractère comme dans ma sortie

+0

['strip_tags()'] (http://php.net/strip-tags) – BlitZ

Répondre

0

Vous avez probablement besoin d'utiliser les fonctions de chaîne multi-octets.

Voir: http://php.net/manual/en/ref.mbstring.php

Votre chaîne persane utilise le codage de caractères multi-octets, et str_replace() ne peut pas gérer correctement que (à moins qu'il soit UTF-8 voir commentaire ci-dessous).

Il y a plus de problèmes:

1 Assurez-vous que vous enregistrez le fichier PHP dans le codage de caractères correct sur le serveur (pointe par Mark).

2 Assurez-vous également que vous envoyez l'en-tête correct dans votre sortie HTML, par exemple:

<head> 
    <meta charset="UTF-8"> 
</head> 

lors de l'utilisation UTF8. Et aussi le faire en PHP:

header('Content-Type: text/html; charset=utf-8'); 

Tout doit être correct, ou il ne fonctionnera pas. Traiter avec l'encodage de caractères peut être assez difficile. Avez-vous vu la fonction mb_detect_encoding()? Utilisez ceci sur votre chaîne d'origine pour apprendre son encodage.

+0

Si c'est UTF-8, alors 'str_replace()' et les amis fonctionneront très bien. Vous n'avez besoin que des fonctions 'mb_' pour les encodages qui autorisent les mêmes valeurs d'octets dans différentes parties de la représentation d'un personnage. –

+0

Ça ne fait rien. le problème persiste – user3932710

+0

Puis-je utiliser 'mb_' pour' str_replace() '? – user3932710