就像iPhone的应用程序名称一样长,名称缩短了。我真的很喜欢这种缩短名称或字符串的方法,而不是在其中添加“...”子句。对不起,如果我感到困惑,我很难解释我想要做什么。所以我将展示一个例子!
这就是我所拥有的,将“...”附加到缩短的字符串(在PHP中)
<?php
$string = "This is a test script";
if (strlen($string) >= 14)
echo(substr($string), 0, 13). "..."); // This is a test...
else
echo($string); // This is a test script
?>
我想拆分名称或字符串并保留第一个说10个字符,然后在中间插入“...”,最后取字符串的结尾5个字母并显示它们。我在考虑以下几点:
<?php
$string = "This is a test script";
if (strlen($string) >= 20)
echo(substr($string, 0, 10). "..." .substr($string, 15, 20)); //This is a ...script
else
echo($string);
?>
但是要意识到在最后只有5个字母的问题上不会起作用。任何指向写入方向的指针都会很棒,谢谢!
答案 0 :(得分:13)
if (strlen($string) >= 20) {
echo substr($string, 0, 10). " ... " . substr($string, -5);
}
else {
echo $string;
}
答案 1 :(得分:2)
substr()
的第三个参数是长度,而不是结束。只需通过5
。
此外,substr($string, -5)
。
答案 2 :(得分:0)
更广义的解决方案
function str_short($string, $length, $lastLength = 0, $symbol = '...')
{
if (strlen($string) > $length) {
$result = substr($string, 0, $length - $lastLength - strlen($symbol)) . $symbol;
return $result . ($lastLength ? substr($string, - $lastLength) : '');
}
return $string;
}
用法
str_short(string, 20, 5, ' ... ')}}