在 PHP 中截断文本?[已关闭]

2022-08-30 17:24:58

我试图在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;
}

因此,在您的情况下,您可以将此函数粘贴到函数.php文件中,并在您的页面中按如下方式调用它:

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

这会将您的帖子切到最后一次出现 100 个字符之前或等于 100 个字符的空格。显然,你可以传递任何数字而不是100。无论您需要什么。


答案 2
$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;
}

推荐