Усечение текста в PHP?

Я пытаюсь усечь некоторый текст в PHP и наткнулся на этот метод (http://theodin.co.uk/blog/development/truncate-text-in-php-the-easy-way.html), который, судя по комментариям, кажется очень простым, для реализации. Проблема в том, что я не знаю, как ее реализовать: S.

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

Спасибо заранее.

Ответы

Ответ 1

Очевидной задачей является чтение документации.

Но чтобы помочь: substr($str, $start, $end);

$str - ваш текст

$start - это индекс символа, начинающийся с. В вашем случае это, скорее всего, 0, что означает начало.

$end - это место для усечения в. Предположим, что вы хотели закончить с 15 символами, например. Вы должны написать это следующим образом:

<?php

$text = "long text that should be truncated";
echo substr($text, 0, 15);

?>

и вы получите следующее:

long text that 

имеет смысл?

ИЗМЕНИТЬ

Ссылка, которую вы указали, - это функция поиска последнего пробела после измельчения текста до нужной длины, чтобы вы не отрезали середину слова. Однако отсутствует одна важная вещь - желаемая длина должна быть передана функции, а не всегда предполагать, что вы хотите, чтобы она составляла 25 символов. Итак, обновленная версия:

function truncate($text, $chars = 25) {
    if (strlen($text) <= $chars) {
        return $text;
    }
    $text = $text." ";
    $text = substr($text,0,$chars);
    $text = substr($text,0,strrpos($text,' '));
    $text = $text."...";
    return $text;
}

Итак, в вашем случае вы вставляете эту функцию в файл functions.php и вызываете ее так на вашей странице:

$post = the_post();
echo truncate($post, 100);

Это сократит ваш пост до последнего появления пробела до или до 100 символов. Очевидно, вы можете передать любое число вместо 100. Что бы вам ни понадобилось.

Ответ 2

$mystring = "this is the text that I would like to had truncated";

// Pass your variable to the function
$mystring = truncat($mystring);

// Truncated tring printed out;
echo $mystring;


//truncate text function
public function truncate($text) {

    //specify number fo characters to shorten by
    $chars = 25;

    $text = $text." ";
    $text = substr($text,0,$chars);
    $text = substr($text,0,strrpos($text,' '));
    $text = $text."...";
    return $text;
}

Ответ 3

$text="abc1234567890";

// truncate to 4 chars

echo substr(str_pad($text,4),0,4);

Это позволяет избежать проблемы обрезания строки 4 char до 10 символов.. (т.е. источник меньше требуемого)