Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中清除波斯语字符串_Php_String - Fatal编程技术网

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

如何在php中清除波斯语字符串,php,string,Php,String,我有这样一个字符串: <div class="myclass"> ما قصد داریم تنها کاراکترهای فارسی را خارج کنیم. اما مشکلاتی پیش رو داریم, از جمله کاراکترهای خاص. آیا راهی هست؟ لطفا راهنمایی کنید. </div> 我不能使用str\u replace或preg\u replace,因为有时会出现类似�在我的输出中您可能需要使用多字节

我有这样一个字符串:

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

我不能使用
str\u replace
preg\u replace
,因为有时会出现类似
在我的输出中

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

见:

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

还有更多的问题:

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

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

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

一切都必须是正确的,否则就行不通了。处理字符编码可能相当困难。您见过
mb\u detect\u encoding()
功能吗?在原始字符串上使用此选项学习其编码。

如果它是UTF-8,则
str_replace()
和friends可以正常工作。您只需要使用
mb
函数进行编码,以允许在字符表示的不同部分使用相同的字节值。这是不正确的。问题是是否可以继续使用
mb
作为
str_replace()
标题('Content-Type:text/html;charset=utf-8')这不起作用too@Mark:这可能是真的,但user3932710使用的是哪种编码?我们不知道。可能是他没有向客户发送正确的字符编码。
<head>
  <meta charset="UTF-8">
</head>
header('Content-Type: text/html; charset=utf-8');