algorithm - 缩短句子的算法问题

标签 algorithm ellipsis

我有一个网页显示多个文本条目,它们的长度没有限制。如果它们太长而无法避免换行,它们会被自动剪切。这是剪切它们的 PHP 函数:

function cutSentence($sentence, $maxlen = 16) {
    $result = trim(substr($sentence, 0, $maxlen));

    $resultarr = array(
            'result' => $result,
            'islong' => (strlen($sentence) > $maxlen) ? true : false    
        );

    return $resultarr;
}

如下图所示,结果很好,但也有一些异常(exception)。包含多个 M 的字符串(我必须考虑到这些)将换行。

现在所有字符串都在 16 个字符后被截断,这已经很低了,很难阅读。

我想知道是否存在一种方法来确保应该有更多空间的句子得到它,而那些包含宽字符的句子最终被削减为较少的字符数(请不要建议使用 CSS 属性 text- overflow: ellipsis 因为它没有得到广泛支持,它不允许我点击“...”链接到完整的条目,我不惜一切代价需要它。

提前致谢。

最佳答案

您可以使用固定宽度的字体,这样所有字符的宽度都相等。或者有选择地获取每个字符的像素宽度并将它们加在一起并删除附加字符,像素长度不会超过一定数量。

关于algorithm - 缩短句子的算法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6595935/

相关文章:

algorithm - 弗洛伊德-沃歇尔算法

python - 一次指挥大量敌人

algorithm - 如何从另一个列表中删除一个列表的每个实例?

Java JNI 和省略号困惑

c - 如何从C中的省略号获取不同类型的参数

html - 在固定高度的父 div 中为子 div 添加省略号

vb.net - StatusStrip 标签中的自动省略号?

algorithm - 1个近似算法可以用于多个NP-Hard问题吗?

algorithm - AVL树中诱导的高度不平衡

android - TextView 没有椭圆化