Intereting Posts

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

Мне нужна эта функциональность в моем последнем php-коде много раз, поэтому я ищу функцию для выполнения работы, если она существует.

Если строка, если она превышает лимит, обрезает ее и накладывает некоторый текст пропуска, например ...(continued) ..

Как и в ruby, мы имеем функцию усечения на строке

 "And they found that many people were sleeping better.".truncate(25, :omission => "... (continued)") 

Я мог бы сделать это, сначала проверив длину, превышающую .. затем обрезаем, затем конкатенацию … Но я ищу какую-то функцию, подобную.

 function substr_with_ellipsis($string, $chars = 100) { preg_match('/^.{0,' . $chars. '}(?:.*?)\b/iu', $string, $matches); $new_string = $matches[0]; return ($new_string === $string) ? $string : $new_string . '…'; } 
 function truncate($string,$length=100,$appendStr="..."){ $truncated_str = ""; $useAppendStr = (strlen($string) > intval($length))? true:false; $truncated_str = substr($string,0,$length); $truncated_str .= ($useAppendStr)? $appendStr:""; return $truncated_str; } , function truncate($string,$length=100,$appendStr="..."){ $truncated_str = ""; $useAppendStr = (strlen($string) > intval($length))? true:false; $truncated_str = substr($string,0,$length); $truncated_str .= ($useAppendStr)? $appendStr:""; return $truncated_str; } 

Вы даже можете отредактировать функцию, чтобы вы могли либо выбрать разрезание с максимальной максимальной длиной, либо соблюдать границы слов …
Выбор в основном ваш

 class StringHelper { public static function truncate($string, $length = 100, $append = "...") { if (strlen($string) <= intval($length)) { return $string; } return substr($string, 0, $length) . $append; } } 

Статический универсальный метод для усечения, который я использую с каркасом Yii.

Построен на ответе @ OkekeEmmanuelOluchu . Немного короче и чище:

 function truncateString($string, $length = 100, $append = "..."){ $truncated_str = substr($string, 0, $length); $truncated_str .= strlen($string) > intval($length) ? $append : ""; return $truncated_str; }