Я пытаюсь усечь некоторый текст в PHP и наткнулся на этот метод ( http://theodin.co.uk/blog/development/truncate-text-in-php-the-easy-way.html ), который судит по комментариям выглядит как простое в использовании решение. Проблема в том, что я не знаю, как ее реализовать: S.
Может ли кто-нибудь мысленно указывать мне, что делать, чтобы это осуществить? Любая помощь будет оценена по достоинству.
Заранее спасибо.
Очевидная вещь – прочитать документацию .
Но чтобы помочь: 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) { $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. Неважно, что вам нужно.
$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; }
$text="abc1234567890"; // truncate to 4 chars echo substr(str_pad($text,4),0,4);
Это позволяет избежать проблемы обрезания строки из 4 символов до 10 символов .. (т. Е. Источник меньше требуемого)