字符串切割不起作用

时间:2013-08-16 02:01:31

标签: php string

目前我使用这个脚本:

$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>'; 
}

如果我键入两行并将其用于剪切字符串,有时这不能正常工作。但是它给出了不同的结果,例如,获得每行都是不同长度的输出。如果全部相同或不相同,我想要相同长度的所有行。

1 个答案:

答案 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>';