php 返回html字符串长度限制,记一次js中和php中的字符串长度计算截取的终极问题和完美...
发布日期:2025-05-03 02:43:24 浏览次数:13 分类:精选文章

本文共 1065 字,大约阅读时间需要 3 分钟。

在处理字符串长度计算时,特别是在处理多字节字符编码的语言(如UTF-8)时,常常需要根据实际显示宽度来决定字符串的长度。以下是针对不同语言的解决方案:

对于JavaScript,可以通过遍历每个字符的charCodeAt()方法来计算字节数,然后根据实际字符宽度进行调整。例如:

function getStringWidth(s) {    let length = 0;    for (let i = 0; i < s.length; i++) {        const code = s.charCodeAt(i);        if (code <= 255) {            length++;        } else {            length += 0.5;        }    }    return Math.ceil(length);}

对于PHP,则可以通过逐字符截断字符串来计算实际显示的宽度。例如:

function get_string_width($s) {    $length = 0;    while (strlen($s) > 0) {        $old_length = strlen($s);        $s = mb_substr($s, 0, -1, 'utf-8');        if (($old_length - strlen($s)) == 1) {            $length += 0.5;        } else {            $length += 1;        }    }    return ceil($length);}

基于上述方法,可以实现对字符串长度的精确计算。例如,截取字符串的函数可以如下实现:

function cut_string($s, $l = 140) {    $length = get_string_width($s);    if ($length > $l) {        while (get_string_width($s . '...') <= $l) {            $s = mb_substr($s, 0, -1, 'utf-8');        }        $s .= '...';    }    return $s;}

这些方法能够有效地处理不同编码下的字符串长度问题,确保计算结果符合实际显示的字符宽度。

上一篇:php 阿里云oss 上传回调
下一篇:php 运算符and or && || 的详解

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2026年05月30日 19时54分27秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章