【发布时间】:2012-01-25 02:29:14
【问题描述】:
我正在尝试构建一个函数来修剪字符串,根据我的规范,它太长了。
这是我所拥有的:
function trim_me($s,$max)
{
if (strlen($s) > $max)
{
$s = substr($s, 0, $max - 3) . '...';
}
return $s;
}
如果字符串比$max 长,上面将修剪一个字符串,并添加一个延续...
我想扩展该功能以处理多个单词。目前它做了它的工作,但如果我有一个字符串说:How are you today?,它有 18 个字符长。如果我运行trim_me($s,10),它将显示为How are yo...,这在美学上并不令人愉悦。我怎样才能使它在整个单词之后添加一个...。假设我运行trim_me($s,10) 我希望它显示How are you... 在单词之后添加延续。有什么想法吗?
我几乎不想在单词中间添加续行符。但是如果字符串只有一个单词,那么接续只能打破单词 then。
【问题讨论】:
-
所以
trim_me('a bbbbbbbbbbbbbbbbbbbbbbbb c', 10)会是'a bbbbbbbbbbbbbbbbbbbbbbbb...'? -
我收到
string(10) "How are..."的 trim_me($s,10) -
@ruakh 不,最多 10 个,所以可以更少。它会找到我认为的最后一个空间并使用它?
-
您希望 $max 成为包括“...”的最大值吗?这就是您的代码所做的,但您的示例没有。