Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

С php 4.0.6 есть функция для того же самого

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

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

Тем не менее, у него есть больше опций, вот документация для этого mb_strimwidth

Ответ 3

Вы можете использовать wordwrap() затем взорваться на новой wordwrap() и перенести первую часть, если вы не хотите разделить слова.

$str = 'Stack Overflow is as frictionless and painless to use as we could make it.';
$str = wordwrap($str, 28);
$str = explode("\n", $str);
$str = $str[0] . '...';

Источник: fooobar.com/questions/149534/...

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

echo substr($str, 0, 28) . '...';

Ответ 4

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

Ответ 5

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

/**
 * 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): string
{
    if (strlen($str) <= $maxlen) return $str;

    $newstr = substr($str, 0, $maxlen);
    if (substr($newstr, -1, 1) != ' ') $newstr = substr($newstr, 0, strrpos($newstr, " "));

    return $newstr;
}

Ответ 6

В 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;
}

Ответ 7

Другим способом ограничить строку в php и добавить текст readmore или как "...", используя ниже код

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

Ответ 8

2-й аргумент - где начинать строку, а 3-й аргумент - сколько символов нужно показать.

$title = "This is for testing string for get limit of string This is for testing string for get limit of string This is for testing string for get limit of string This is for testing string for get limit of string";
    echo substr($title,0,50);

Ответ 9

$ value = str_limit ('Эта строка действительно очень длинная.', 7);

//Это...