如何在php中清理波斯语字符串

时间:2014-09-01 11:43:20

标签: php string

我有一个这样的字符串:

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

现在我希望我的输出像这样:

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

我无法使用str_replacepreg_replace,因为有些时候我的输出中有这样的字符

1 个答案:

答案 0 :(得分:0)

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

请参阅:http://php.net/manual/en/ref.mbstring.php

您的波斯语字符串使用多字节字符编码,而str_replace()无法正确处理(除非它是UTF-8,请参阅下面的注释)。

还有更多问题:

1确保在服务器上以正确的字符编码存储PHP文件(标记为Mark)。

2还要确保在HTML输出中发送正确的标题,例如:

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

使用UTF8时。并且还在PHP中执行:

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

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