2014-09-01 77 views
0

波斯字符串我有一个这样的字符串:如何清洁在PHP

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

现在我想我的输出是这样的一个:

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

我不能使用str_replacepreg_replace因为某些时候在我的输出中有一些字符如

+0

['strip_tags()'](http://php.net/strip-tags) – BlitZ 2014-09-01 11:44:05

回答

0

您可能需要使用多字节字符串函数。

参见:http://php.net/manual/en/ref.mbstring.php

你的波斯字符串使用多字节字符编码,和str_replace()函数无法处理正确的(除非是以下UTF-8见注释)。

有更多的问题:

1确保存储在正确的字符编码的服务器上的PHP文件(尖马克)。

2还要确保您发送正确的头在你的HTML输出,例如:

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

使用UTF8时。也可以在PHP中执行:

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

一切都必须正确,否则将无法正常工作。处理字符编码可能非常困难。你见过mb_detect_encoding()功能吗?在你的原始字符串上使用它来学习它的编码。

+0

如果是UTF-8,那么'str_replace()'和朋友就可以正常工作。你只需要'mb_'函数就可以在字符表示的不同部分中使用相同的字节值进行编码。 – 2014-09-01 11:49:38

+0

它不是wrking。问题是继续 – user3932710 2014-09-01 11:50:58

+0

我可以使用'mb_'作为'str_replace()'吗? – user3932710 2014-09-01 11:52:19