loader
СГБ - Сологуб
Заказать услуги

Функция расчёта времени на чтение статьи

Example blog post alt

Наверняка замечали на сайтах надпись типа "время чтения: 3 минуты" рядом с заголовком статьи. Штука простая, но полезная — человек сразу понимает, сколько времени займёт материал, и решает, читать сейчас или отложить. Сегодня разберём готовый PHP-сниппет, который делает такой расчёт автоматически.

 static function timechten($content) {	$words_per_minute = 150; // слов в минуту	$img_per_minute = 12; // секунд на одно изображение	$img_numb = preg_match_all("~<img~i", $content, $result_numb);	$plain_text = strip_tags($content);	$words_count = count(preg_split("/\s+/", trim($plain_text)));	$text_read = round($words_count / $words_per_minute, 1);	$img_read = floor((count($result_numb[0]) * $img_per_minute) / 60);	$all_read = $img_read + $text_read;	if ($all_read < 1) {	$all_read = 1;	}	return self::decl_of_numb(round($all_read), array(" минуту", " минуты", " минут"));	}

Что делает функция

Функция timechten принимает на вход HTML-контент статьи и возвращает строку вида "5 минут" или "1 минута" — с правильным окончанием слова.

Логика простая и понятная:

Сначала функция считает картинки в тексте через preg_match_all по тегу <img>. Считается, что на просмотр одной картинки читатель тратит 12 секунд — это среднее время, чтобы взглянуть на иллюстрацию и вернуться к тексту.

Дальше убираем все HTML-теги через strip_tags, чтобы остался чистый текст без разметки. Разбиваем текст на слова через preg_split по пробельным символам и считаем их количество.

Скорость чтения берётся усреднённая — 150 слов в минуту. Это довольно комфортный темп для беглого чтения статьи, не слишком быстрый, не слишком медленный.

Затем время на текст и время на картинки складываются, округляются, и если получилось меньше минуты — принудительно ставится 1 минута, чтобы не было забавного "0 минут".

Отдельного внимания заслуживает вызов self::decl_of_numb() — это функция склонения числительных, которая подставляет правильное окончание: минута, минуты или минут, в зависимости от итогового числа.

Зачем это нужно

Такой расчёт времени чтения — не просто красивая фишка. Он реально влияет на поведенческие факторы: пользователь видит адекватную оценку и с большей вероятностью останется на странице, если время небольшое, или заранее настроится на длинный материал. Для блогов, новостных порталов и статейных разделов интернет-магазинов это удобный инструмент под рукой, который легко воткнуть в шаблон вывода статьи.

Использовать функцию просто: передаёте в неё HTML-содержимое статьи, а на выходе получаете готовую строку для вставки рядом с заголовком или датой публикации.

0 Комментариев
Что-бы оставить свой комментарий Вы должны авторизоваться на сайте
x
Тема пуша
Сообщение пуша
Наверх
Отправить заявку
Нажимая на кнопку, вы даете согласие на обработку своих персональных данных