gpt4 book ai didi

php - PHP如何截取多字节字符串(英文单词和汉字)?

转载 作者:搜寻专家 更新时间:2023-10-31 21:29:00 24 4
gpt4 key购买 nike

我的这个函数在 PHP 5.2.0 中不太工作得很好,这个函数将字符串剪切成所需的长度:

function neat_trim($str, $n, $delim='...')
{
$len = strlen($str);

if ($len > $n)
{
preg_match('/(.{' . $n . '}.*?)\b/', $str, $matches);
return rtrim($matches[1]) . $delim;
}
return $str;
}

然后我打电话

$multibyte_string = "Portion of Chicken for 1 person<br>一人份鸡肉";

echo neat_trim($multibyte_string,42) . "</br>";

将产生

Portion of Chicken for 1 person
一人�...

不幸的是,它不能在 PHP-5.4.29 上运行,它会产生:

...

我试过了 thisthis但没有用。请帮忙。

最佳答案

工作代码基于@Jonny 的评论,再次感谢

function neat_trim($str, $n, $delim='...')
{
$len = mb_detect_encoding($str) == "UTF-8" ? mb_strlen($str, "UTF-8") : strlen($str);
if ($len > $n)
{
preg_match('/(.{' . $n . '}.*?)\b/us', $str, $matches);
return rtrim($matches[1]) . $delim;
}
return $str;
}

关于php - PHP如何截取多字节字符串(英文单词和汉字)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32309859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com