Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Обрезка текста
yintar  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 76
Пользователь №: 39357
На форуме: 2 года, 7 месяцев, 23 дня
Карма:




Вывожу из базы текст - 450 символов,а остальной текст скрываю (оставшееся кол-во символов) , после текста ставлю ссылку "читать больше" при нажатии на эту ссылку с помощью javascript показываю скрытый текст.Единственная проблема - после обрезки текста (до 450 символов) последнее слово обрезается некорректно .....Как исправить эту ситуацию?. например обрезать 450 символов но чтобы обрезалось до конца предложения.........


<div class="desc">
<?php

$text = strip_tags($new->description);
//$new->description - это и есть текст который выводится из базы.......
$text = substr($text, 0, 450);
$text_hidden = substr($new->description, 450, strlen($text));
$text = rtrim($text, "!,.-");
// $text = substr($text, 0, strrpos($new->description, ' '));
echo $text."… "; ?>
<p class="text-hidden-<?= $new->id; ?>" style="display: none">
<?php echo $text_hidden;?>
</p>

</
div>

скрипт который показывает скрытый текст

<script>
$(document).ready(function() {
$('.readmore').on('click',function(e){
e.preventDefault();
var id = $(this).attr('id');
$('.text-hidden-'+id).toggle();

});
});

</
script>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 5902
Пользователь №: 1
На форуме: 10 лет, 9 месяцев, 23 дня
Карма: 125

Не пью :
22 года, 2 месяца, 26 дней


Я делал обрезку по целым словам. То есть, после заданной позиции ищется ближайший не-буквенный символ (пробел, знак препинания), и по нему обрезается.


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 4 дня
Карма: 77




Это конечно очень грубо :D
    $text = 'Ну очень большой и длинный текс';
$end = strripos($text, ' ');
$text = substr($text, 0, $end);
echo $text;
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 5902
Пользователь №: 1
На форуме: 10 лет, 9 месяцев, 23 дня
Карма: 125

Не пью :
22 года, 2 месяца, 26 дней


$txt = 'Очень-очень длинный текст который нужно обрезать';
$lenght = 30; // Минимальная длина анонса
$pos = strpos(substr($txt,$lenght), ' ');
$anons = substr($txt,0,($lenght+$pos));


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса