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

时间:2015-05-28 16:33:55

标签: php count char hide

我创建或实现了这个在很多网站上都很常见的字符限制器,在我的例子中,我将限制设置为最多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>';
       }

我想要做的是有一个按钮,我像陈词滥调一样推动&#34;阅读更多&#34;或类似的东西,然后显示其余的。

我可以开始考虑像jQuery这样的解决方案来隐藏/显示其余的内容,或者使用帖子的id来拉取整个存储的条目,我甚至之前使用过基于URL的查询但是有一个更简单的方法?

1 个答案:

答案 0 :(得分:1)

试试这个: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>";
}