php - 在 PHP 中截断文本?

标签 php truncate

<分区>

我试图在 PHP 中截断一些文本并且偶然发现了这个方法 ( http://theodin.co.uk/blog/development/truncate-text-in-php-the-easy-way.html ),从评论来看它似乎是一个很好的易于实现的解决方案。问题是我不知道如何实现它 :S。

有人会介意向我指出实现此目标的方向吗?任何帮助将不胜感激。

提前致谢。

最佳答案

显而易见的事情是阅读 documentation .

但要帮助: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 个字符的最后一个空格。显然,您可以传递任何数字而不是 100。无论您需要什么。

关于php - 在 PHP 中截断文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9219795/

相关文章:

javascript - 允许发送多封电子邮件并发送给所有人的表单

php - MySQL截断结果,导致警告: array_multisort(): Array sizes are inconsistent

php - 影子密码

PHP fatal error : Property $id of class MongoId cannot be read in Unknown on line 0

postgresql - 为什么在表上禁用触发器后外键仍处于事件状态?

java - 在使用 Hibernate 时可以截断数据库表吗?

awk - 使用 sed 删除特定列的小数

Java - System.out.printf 舍入 float

php - Laravel 4 多对多从两个表中获取所有数据

php - 在此模拟对象上找不到模拟方法 shouldRecieve()