目前我正在使用
substr("String name", 0, 10).'...'
用......替换任何超过10的单词
然而我意识到即使我在像“邦德”这样简单的单词上使用它
substr("Bond", 0, 10).'...';
“...”仍然会出现,我怎么能说只有超过字数限制的字才能有“......”
答案 0 :(得分:2)
$string = "bond";
if(strlen($string) > 10)
$string = substr($string, 0, 10) . '...';
答案 1 :(得分:1)
要查看字符串是否长于某个长度,请执行以下操作:
$string = "Applepie is delicious.";
$maxlength = 10;
// If the string length is bigger than $maxlength
if(strlen($string) > $maxlength)
{
echo substr($string, 0, $maxlength).'...';
}
// If it's shorter than $maxlength
else
{
echo $string;
}
答案 2 :(得分:1)
这样的事情可能有所帮助:
function str_curtail($str, $length = 35, $append = '...')
{
// String short enough already ?
if (strlen($str) <= $length) {
return $str;
}
$str = substr($str, 0, $length);
for ($i=$length - 1; !ctype_space($str{$i}); --$i); // No body intentionally
$str = rtrim(substr($str, 0, $i));
return $str . $append;
}
答案 3 :(得分:1)
您可以使用快速正则表达式:
$str = 'Hello world what is up';
preg_replace('/(.{10}).+/', '$1...', $str); //=> "Hello worl..."
如果不存在至少10个字符,则由于捕获组不匹配,因此不会执行任何操作。