如何更改 PHP 查询的字符计数结果?

How to change the character count result of a PHP query?

我已经创建或实现了这个在许多网站上都很常见的字符限制器,在我的例子中,我将限制设置为最多显示 200 个字符,后面跟一个省略号。

$str = $row[1];
       $count = strlen($str);

       if($count<200){
       $post = $row[1];
       }else{
       $end = $count-200;
       $mod = substr($row[1], 0, -$end);
       $post = $mod."...";
       }
       if ($row[0] % 2 == 0) {
       echo 
       '<div class="background-even">'.
       $row[2].
       '<br>'.
       '<br>'.
       nl2br($post).
       '<br>'.'<br>'.
       '</div>';
       }
       else {
       echo 
       '<div class="background-odd">'.
       $row[2].
       '<br>'.
       '<br>'.
       nl2br($post).
       '<br>'.'<br>'.
       '</div>';
       }

我想要做的是有一个按钮,我可以像陈词滥调 "read more" 或类似的东西那样按下它,然后显示其余部分。

我可以开始想像jQuery这样的解决方案到hide/show其余的内容,或者使用post的id来拉取整个存储的条目,我以前甚至使用过基于 URL 的查询,但是有更简单的方法吗?

试试这个:http://jsfiddle.net/Twisty/dhbcdLL1/

使用JQuery,你可以做到这一点。

function truncate(t, l) {
    if (t.length > l) {
        var parts = [];
        parts[0] = t.substr(0, l - 3);
        parts[1] = t.substr(l - 3);
        return parts[0] + "..." + "<span style='display: none;'>" + parts[1] + "</span>";
    } else {
        return t;
    }
}
$(function () {
    $(".truncate").each(function () {
        $(this).html(truncate($(this).text(), 200));
    });
    $("body").on("click", "a.show-more", function () {
        var parts = $(this).prev("p").text().split("...");
        $(this).prev("p").html(parts[0] + parts[1]);
        $(this).addClass("hide-more").removeClass("show-more").html("Hide More");
    });
    $("body").on("click", "a.hide-more", function () {
        var ft = $(this).prev("p").text();
        $(this).prev("p").html(truncate(ft, 200));
        $(this).addClass("show-more").removeClass("hide-more").html("Show More");
    });
});

如果需要,您可以在 PHP 中进行拆分。

$count = strlen($row[1]);
if($count<200){
    $post = $row[1];
}else{
    $parts = array(substr($row[1], 0, 197), substr($row[1], 197));
    $post = "{$parts[0]...<span style='display: none;'>{$parts[1]}</span>";
}