Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Ограничение по количеству символов


Recommended Posts

В контроллере модуля есть такая строка:

'annotation' => html_entity_decode($result['annotation'], ENT_QUOTES, 'UTF-8'),

а в tpl:

<div class="description"><?php echo $article['annotation']; ?></div>

 

Хочу ограничить количество текста, например, 100 символами. Подскажите, как это сделать?

Надіслати
Поділитися на інших сайтах



'annotation' => utf8_substr(strip_tags(html_entity_decode($result['annotation'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',

  • +1 1
Надіслати
Поділитися на інших сайтах

В контроллере модуля есть такая строка:

'annotation' => html_entity_decode($result['annotation'], ENT_QUOTES, 'UTF-8'),

а в tpl:

<div class="description"><?php echo $article['annotation']; ?></div>

 

Хочу ограничить количество текста, например, 100 символами. Подскажите, как это сделать?

 

1. Тогда зачем вам annotation?

Краткое описание - оно для т ого и краткое, чтобы иметь html разметку и быть кратким

Надіслати
Поділитися на інших сайтах

'annotation' => utf8_substr(strip_tags(html_entity_decode($result['annotation'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',

Выведет без тегов

Если надо чтобы теги остались: ($amount - количество символов)

Что то типа такого надо

                                    $limit   = $amount;
                                    $source  = strip_tags(html_entity_decode($comment['text'], ENT_QUOTES, 'UTF-8'));
                                    $counter = 0;
                                    $matches = Array();
                                    utf8_preg_match_all('/(?:\[.*\].*\[\/.*\])|(.)/Usiu', $source, $matches, PREG_OFFSET_CAPTURE);
                                    foreach ($matches[1] as $num => $val) {
                                        if (is_array($val)) {
                                            $counter++;
                                            if ($counter == $limit) {
                                                $source = utf8_substr_replace($source, '', $val[1] + 1);
                                                break;
                                            }
                                        }
                                    }
                                    $text = $source;       




                 

Сама функция utf8_preg_match_all

 function utf8_preg_match_all(
        $ps_pattern,
        $ps_subject,
        &$pa_matches,
        $pn_flags = PREG_PATTERN_ORDER,
        $pn_offset = 0,
        $ps_encoding = 'UTF-8'
    ) {

        // WARNING! - All this function does is to correct offsets, nothing else:
        //(code is independent of PREG_PATTER_ORDER / PREG_SET_ORDER)

       // if (is_null($ps_encoding)) $ps_encoding = mb_internal_encoding();

        $pn_offset = strlen(utf8_substr($ps_subject, 0, $pn_offset, $ps_encoding));
        $ret = preg_match_all($ps_pattern, $ps_subject, $pa_matches, $pn_flags, $pn_offset);

        if ($ret && ($pn_flags & PREG_OFFSET_CAPTURE)){

            foreach($pa_matches as &$ha_match)
                foreach($ha_match as &$ha_match)
                if (isset($ha_match[1]))
                        $ha_match[1] = utf8_strlen(substr($ps_subject, 0, $ha_match[1]), $ps_encoding);
                    }

        return $ret;

    }

 

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.