我有一个网页显示多个文本条目,它们的长度没有限制。如果它们太长而无法避免换行,它们会被自动剪切。这是剪切它们的 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/