Ограничить длину строки

Я ищу способ ограничить строку в php и добавить … в конце, если строка была слишком длинной.

Related of "Ограничить длину строки"

Вы можете использовать что-то похожее на нижеследующее:

 if (strlen($str) > 10) $str = substr($str, 0, 7) . '...'; 

Из php 4.0.6 существует функция для той же самой вещи

функция mb _ strimwidth может использоваться для вашего требования

 <?php echo mb_strimwidth("Hello World", 0, 10, "-yahooo!-"); //Hello W-yahooo!- ?> 

У этого есть больше вариантов, хотя, вот документация для этого mb_strimwidth

Вы можете взглянуть на этот ответ, если не хотите разделить слова.

Если вам не нужны расщепления слов, просто используйте функцию php substr .

Сделайте небольшую домашнюю работу с строковыми функциями php онлайн-руководства . Вы хотите использовать параметр strlen в параметре сравнения, substr чтобы сократить его, если вам нужно, и оператор конкатенации с "..." или "&hellip;"

Чтобы усечь строку, предоставленную максимальным лимитом, не нарушая слова, используйте это:

 /** * truncate a string provided by the maximum limit without breaking a word * @param string $str * @param integer $maxlen * @return string */ public static function truncateStringWords($str, $maxlen) { if (strlen($str) <= $maxlen) return $str; $newstr = substr($str, 0, $maxlen); if (substr($newstr, -1, 1) != ' ') $newstr = substr($newstr, 0, strrpos($newstr, " ")); return $newstr; } 

Другим способом ограничить строку в php и добавить текст readmore или как «…», используя приведенный ниже код

 if (strlen(preg_replace('#^https?://#', '', $string)) > 30) { echo substr(preg_replace('#^https?://#', '', $string), 0, 35).'&hellip;'; } 

В Laravel для этого есть функция использования строки, и она реализована следующим образом:

 public static function limit($value, $limit = 100, $end = '...') { if (mb_strwidth($value, 'UTF-8') <= $limit) { return $value; } return rtrim(mb_strimwidth($value, 0, $limit, '', 'UTF-8')).$end; }