我想在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) {
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。无论你需要什么。
mb_strimwidth($string, 0, 15, "...")
- tolginho$mystring = "this is the text I would like to truncate";
// Pass your variable to the function
$mystring = truncate($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);
substr()
不理解的是什么?你在哪里感到困惑?它是一个函数,根据你给定的参数返回源字符串的一部分。 - Bradsubstr()
函数。第一个参数是你的文本,第二个参数是偏移量 - 如果设置为 0,则从开头截断;如果设置为 1、2、3...,则在那么多个字符后截断;第三个参数是应该截断的长度。例如,substr("hello world", 3, 4)
将返回lo w
- 从 3 开始的 4 个字符。 - Tony Bogdanov