Существует ли эта функция в PHP? - PullRequest
5 голосов
/ 27 марта 2009

Я обнаружил, что мне нужна эта функция, и мне было интересно, существует ли она уже в PHP.

/**
 * Truncates $str and returns it with $ending on the end, if $str is longer
 * than $limit characters
 *
 * @param string $str
 * @param int $length
 * @param string $ending
 * @return string
 */
function truncate_string($str, $length, $ending = "...")
{
    if (strlen($str) <= $length)
    {
        return $str;
    }
    return substr($str, 0, $length - strlen($ending)).$ending;
}

Таким образом, если ограничение равно 40 и строка «Быстрая лиса перепрыгнула через ленивую коричневую собаку», то будет вывод: «Быстрая лиса перепрыгнула через ленивую бровь ...». Это похоже на то, что существует в PHP, поэтому я удивился, когда не смог найти его.

Ответы [ 4 ]

5 голосов
/ 27 марта 2009
$suffix = '...';
$maxLength = 40;

if(strlen($str) > $maxLength){
  $str = substr_replace($str, $suffix, $maxLength);
}

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

4 голосов
/ 27 марта 2009

Вот версия для тех, кто заинтересован

<?php 
    echo (strlen($string) > 40 ? substr($string, 0, 37)."..." : $string);
?>
2 голосов
/ 27 марта 2009

Нет, его не существует. Однако многие библиотеки предоставляют его, так как он вам не нужен. например Smarty

1 голос
/ 27 марта 2009

Это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...