Как изменить результат подсчета символов в PHP-запросе?

Я создал или внедрил этот ограничитель символов, который распространен на многих веб-сайтах, в моем случае я установил ограничение не более 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>';
}

То, что я хочу сделать, — это иметь кнопку, которую я нажимаю, как клише «читать дальше» или что-то в этом роде, которая затем показывает остальное.

Я могу немного подумать о таких решениях, как jQuery, чтобы скрыть / показать остальную часть содержимого, или использовать идентификатор сообщения, чтобы извлечь всю сохраненную запись, я даже раньше использовал запрос на основе URL, но есть ли более простой метод?

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>";
}
1

Другие решения

Других решений пока нет …