目前我使用这个脚本:
$tstring = strip_tags($nstitle);
if (strlen($tstring) > 65) {
// truncate string
$stringCut = substr($tstring, 0, 65);
// make sure it ends in a word so assassinate doesn't become ass...
$tstring = substr($stringCut, 0, strrpos($stringCut, ' ')).
'.....<a href="">read more</a>';
}
如果我键入两行并将其用于剪切字符串,有时这不能正常工作。但是它给出了不同的结果,例如,获得每行都是不同长度的输出。如果全部相同或不相同,我想要相同长度的所有行。
答案 0 :(得分:1)
除非添加填充,否则不能使每个输入的长度相同(65)。因为你基本上砍掉了最后一个空格之后的所有内容,所以最后一个空格可能出现在字符串中的不同位置。此外,如果没有空间,您可能无法获得预期的结果。所以1.检查,然后2.垫。
// truncate string
$stringCut = substr($tstring, 0, 65);
//make sure it can find a space
if (strrpos($stringCut, ' ') > 0) {
$stringCut = substr($stringCut, 0, strrpos($stringCut, ' '));
}
//then pad the string so its always 65 characters long
while (strlen($stringCut) < 65) {
$stringCut.="*";
}
// make sure it ends in a word so assassinate doesn't become ass...
$tstring = $stringCut . '.....<a href="">read more</a>';