2013-08-16 2 views
-1

В настоящее время я использую этот скрипт:Строка разрез не работает отлично

$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

вы не можете сделать каждый вход той же длины (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>'; 
+0

@setn дорогой, я выхожу с этим символом * почему? – user2687922

+0

Мне нравится выводить вывод, как и все строки равными. как я видел в группе fb список всех групп, которые имеют длинное имя. но все группы называют cut equals. :-) – user2687922

+0

Возможно, замените * пробелом. На какую группу fb вы ссылаетесь? Укажите ссылку. – chiliNUT

Смежные вопросы