我需要分割阿拉伯语文本,我正在尝试不同的方法,但没有解决它
$input = "ابجد";
$split = mb_str_split($input);
print_r($split);
期望输出像
(ا،ب،ج،د)
需要解决方案
您可以尝试mb_str_split(),它可以处理多字节字符串。这段代码:
$input = "ابجد";
$split = mb_str_split($input);
print_r($split);
结果:
Array
(
[0] => ا
[1] => ب
[2] => ج
[3] => د
)
当你操作(trim, split, splice等)用多字节编码编码的字符串时,你需要使用特殊的函数,因为在这样的编码方案中,两个或多个连续的字节可能代表一个字符。否则,如果对字符串应用非多字节感知的字符串函数,它可能无法检测多字节字符的开始或结束,并最终得到一个损坏的垃圾字符串,很可能失去其原始含义。
可以使用array_reverse()反转输出,如下所示:
$input = "ابجد";
$split = mb_str_split($input);
$reversed = array_reverse($split);
print_r($reversed);
现在的输出是:
Array
(
[0] => د
[1] => ج
[2] => ب
[3] => ا
)
见:https://3v4l.org/ZsJNb
你可以试试implode
输出=(ا،ب،ج،د):
$input = "ابجد";
$split = mb_str_split($input,1,'UTF-8');
print "(".implode('،',$split).")";
//output: (ا،ب،ج،د)