2016-07-01 2 views
0

изменение большой текст «Hereisthelargetextbreakwithphp» в «Hereisthelarge ...»Как изменить большой текст «Hereisthelargetextbreakwithphp» на «Hereisthelarge ...»?

$string = "Hereisthelargetextbreakwithphp"; 
$string = strip_tags($string); 
if (strlen($string) > 21) { 
    $stringCut = substr($string, 0, 21); 
    echo $string = substr($stringCut, 0, strrpos($stringCut, ' ')).'... '; 
}else{ 
    echo $string; 
} 

, но его и не работает для него заменить весь этот текст «...»

+0

https://gist.github.com/d ynamicguy/3272470 –

+0

Возможный дубликат [Добавить ... если строка слишком длинная PHP] (http://stackoverflow.com/questions/11434091/add-if-string-is-too-long-php) –

ответ

0

Когда нет места, strrpos возвращается false, которое применяется к нулю в функции substr. Это приводит к тому, SubStr возвращает пустую строку

if (strlen($string) > 21) { 
    $stringCut = substr($string, 0, 21); 
    // If threre is no space in string take it all 
    $i = (($i = strrpos($stringCut, ' ')) === false) ? strlen($stringCut) : $i; 
    echo $string = substr($stringCut, 0, $i).'... '; 
} 
0

Попробуйте это:

$string = strip_tags("Hereisthelargetextbreakwithphp"); 
echo (strlen($string) > 14) ? substr($string, 0, 14).'... ' : $string; 
0

Нет необходимости делать пользовательские функции , поскольку вы используете Codeigniter, вы можете напрямую использовать текстовый хелпер,

нагрузки помощник первый,

$this->load->helper('text'); 

Затем используйте character_limiter функцию, которая уже встроена,

$string = character_limiter($stringCut, 21); 

И если вы хотите добавить ... после строки,

$string = character_limiter($stringCut, 21) . '...'; 

Ссылка: Codeigniter Text Helper

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