我要前三个字从一个非英文字串在php中。例如:
এখানে কিংকর্তব্যবিমূঢ় হবার কোনো সুযোগ নেই我发现英文文本有可能是:
$phrase = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit';
echo implode(' ', array_slice(str_word_count($phrase, 2), 0, 3));但这不适用于我的非英语(孟加拉语)文本。有人能告诉我怎么做吗?
发布于 2017-04-19 09:45:05
使用explode和implode
1) explode字符串按空格排列
2)使用array_slice获取前三片
3)再一次使用空间implode
<?php
$string = 'এখানে কিংকর্তব্যবিমূঢ় হবার কোনো সুযোগ নেই';
$array = array_slice(explode(" ",$string),0,3);
echo implode(" ",$array)."<br>";
?>发布于 2017-04-19 09:45:56
为此,可以使用explode、array_slice和implode:
$string = "এখানে কিংকর্তব্যবিমূঢ় হবার কোনো সুযোগ নেই";
$parts = explode(" ", $string);
$x = array_slice($parts, 0, 3);
print implode(" ", $x);
# এখানে কিংকর্তব্যবিমূঢ় হবার发布于 2017-04-19 09:46:02
您没有提到您正在使用的PHP版本,但是PHP和UTF的主要问题是它有时不一起工作,因为许多字符串操作方法/主要是基于"1 char =1字节“的假设。MBString扩展在许多情况下解决了这一问题,但并非无处不在。在您的示例中,需要将str_word_count()替换为多字节感知的对应方,即mb_split()
echo implode(' ', array_slice(mb_split("\s", $phrase), 0, 3));https://stackoverflow.com/questions/43491816
复制相似问题