php – 将多字节字符串截断为n个字符
作者:互联网
我试图在字符串过滤器中使用此方法:
public function truncate($string, $chars = 50, $terminator = ' …');
我期待这个
$in = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYXZ1234567890";
$out = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV …";
还有这个
$in = "âãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝ";
$out = "âãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđ …";
这是$chars减去$terminator字符串的字符.
此外,滤波器应该在$chars限制以下的第一个字边界切割,例如
$in = "Answer to the Ultimate Question of Life, the Universe, and Everything.";
$out = "Answer to the Ultimate Question of Life, the …";
我很确定这应该适用于这些步骤
>从最大字符中减去终结符中的字符数量
>验证字符串是否超过计算的限制或不加改变地返回
>在字符串中找到计算限制以下的最后一个空格字符以获取字边界
>如果找不到最后一个空格,则在最后一个空格处剪切字符串或计算限制
>将终结符附加到字符串
>返回字符串
但是,我现在尝试了str *和mb_ *函数的各种组合,但都产生了错误的结果.这不是那么困难,所以我显然缺少一些东西.有人会为此分享一个有效的实现,或者指向一个资源,我终于可以理解如何做到这一点.
谢谢
附:是的,我之前检查过https://stackoverflow.com/search?q=truncate+string+php
标签:php,string,truncate,multibyte 来源: https://codeday.me/bug/20190915/1805488.html