Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Stranger
15 / 11 / 7
Регистрация: 27.07.2019
Сообщений: 310

Сокращение «К» в отметке просмотров

09.07.2025, 22:15. Показов 1531. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Подскажите есть хорошие решение реализации сокращение «К» в отметке просмотров, например «1.2К». Буква «К» означает «кило» и обозначает тысячу. Таким образом, «1.2К» означает, что страницу или пост посмотрели 1200 раз.

Может кто - нибудь что-то подобное реализовывал в своих проектах? Подскажите, если не сложно).

Не хочется изобретать снова велосипед)
Мое мнение. Оптимальным решение подходить с использованием конструкции switch и case.
Еще было бы неплох реализовать по условию. Сколько раз или раза (необязательно но желательно)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.07.2025, 22:15
Ответы с готовыми решениями:

Сокращение количества просмотров
2 просмотров 100 просмотров 800 просмотров 1,2 тыс просмотров 1 милл просмотров Есть ли...

Как сделать, чтобы при отметке чекбокса, его значение checked сохранялось после перезагрузки страницы?
Ребят, есть страница, на ней есть чекбоксы допустим 10. Сначало они не отмечены или отмечены. Как...

Счетчик просмотров !
Проблема такова хочу сделать количество просмотров что бы отображалось вывел табличку в цикл в...

18
 Аватар для andrey_f
884 / 537 / 228
Регистрация: 21.02.2011
Сообщений: 5,706
10.07.2025, 08:38
почему это в разделе php? мне кажется тут javascript чистой воды:
JavaScript
1
2
3
4
5
6
7
8
9
10
function formatViews(count) {
    if (count >= 1000) {
        // Делим число на 1000 и округляем до одного знака после запятой
        const formatted = (count / 1000).toFixed(1);
        // Удаляем лишний ноль, если есть
        return `${parseFloat(formatted)}К`;
    } else {
        return count.toString();
    }
}
JavaScript
1
2
3
4
5
6
7
8
function formatViewsWithWord(count) {
    const viewsStr = formatViews(count);
    if (count === 1) {
        return `${viewsStr} раз`;
    } else {
        return `${viewsStr} раза`;
    }
}
1
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,823
10.07.2025, 12:42
Цитата Сообщение от andrey_f Посмотреть сообщение
JavaScript
1
2
3
4
5
6
7
8
function formatViewsWithWord(count) {
    const viewsStr = formatViews(count);
    if (count === 1) {
        return `${viewsStr} раз`;
    } else {
        return `${viewsStr} раза`;
    }
}
5 раза, 12 раза, 21 раза?
1
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3954 / 2066 / 829
Регистрация: 13.03.2010
Сообщений: 6,799
10.07.2025, 13:13
Лучший ответ Сообщение было отмечено Stranger как решение

Решение

Цитата Сообщение от andrey_f Посмотреть сообщение
почему это в разделе php?
Потому что человеку нужно решение на php.

Добавлено через 14 минут
Немного адаптировал с реального проекта. Во вторую функцию можно засунуть массив слов, чтобы использовать не только "раз" (доработать, в смысле).

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
function abbreviateNumber($value, int $decimals = 1, array $suffixes = ['K', 'M', 'B', 'T']): string
{
    if ($value < 1000) {
        return (string)$value; // ничего не сокращаем
    }
 
    // получаем порядок, кратный 1000
    $order = (int)floor(log($value, 1000));
    $order = min($order, count($suffixes)); // на случай ОЧЕНЬ больших чисел
 
    $scaled = $value / (1000 ** $order);
    $formatted = number_format($scaled, $decimals, '.', '');
 
    // убираем лишнее
    $formatted = rtrim(rtrim($formatted, '0'), '.');
 
    return $formatted . $suffixes[$order - 1];
}
 
function pluralizeTimes(int $n): string
{
    $n = abs($n) % 100;
    $n1 = $n % 10;
 
    if ($n > 10 && $n < 20) {
        return 'раз';
    }
    if ($n1 > 1 && $n1 < 5) {
        return 'раза';
    }
    if ($n1 == 1) {
        return 'раз';
    }
    return 'раз';
}
 
$views = 12650;
echo abbreviateNumber($views) . ' ' . pluralizeTimes($views); // 12.7K раз
2
 Аватар для Stranger
15 / 11 / 7
Регистрация: 27.07.2019
Сообщений: 310
10.07.2025, 15:37  [ТС]
Цитата Сообщение от gogolik Посмотреть сообщение
Потому что человеку нужно решение на php.
PHP будет по надежней) Нежили JavaScript. Мощный пример Спасибо!

Добавлено через 14 минут
Подобное что-то реализовывал своем проекте. Интернет-магазине.

PHP
1
2
3
4
5
6
7
8
/* Создаем функцию которая выводит склонении товаров */
function getWordCart($number) {
    $words = array("товар", "товара", "товаров");
    $keys = array(2, 0, 1, 1, 1, 2);
    $mod = $number % 100;
    $word_key = ($mod > 7 && $mod < 20) ? 2 : $keys[min($mod % 10, 5)];
    return $words[$word_key];
}
0
Заблокирован
10.07.2025, 15:45
Цитата Сообщение от Stranger Посмотреть сообщение
PHP будет по надежней) Нежили JavaScript.
Первый раз вижу, что бы JS и PHP сравнивали по надёжности. Они в вебе используются для разных задач.
0
 Аватар для Stranger
15 / 11 / 7
Регистрация: 27.07.2019
Сообщений: 310
10.07.2025, 16:52  [ТС]
Соглашусь с тем, что они в Web-разработке используются для разных задач. JS — это клиентская часть. Уже на клиентской части о какой может идти речь О надёжности? и не является какова языком программирования. PHP — это северная часть. И это уже язык, программирование.
PHP, по некоторым представлениям, более безопасен, чем JavaScript (JS), в плане безопасности. Это связано с особенностями выполнения кода: PHP — язык сценариев на стороне сервера, JavaScript — на стороне клиента.

JavaScript (JS)

Код JavaScript более уязвим к угрозам безопасности, так как выполняется на стороне клиента.

Например:

XSS-атаки — злоумышленник внедряет вредоносный JavaScript-код в веб-страницу, который затем выполняется на стороне клиента.

CSRF-атаки — заставляют пользователя выполнить нежелательные действия на сайте, где он уже авторизован, например, отправить форму с вредоносным запросом.
0
Заблокирован
10.07.2025, 17:01
Цитата Сообщение от Stranger Посмотреть сообщение
Код JavaScript более уязвим к угрозам безопасности, так как выполняется на стороне клиента.
SQL-инъекции на стороне сервера и очень часто из-за ошибок php-программистов.
Цитата Сообщение от Stranger Посмотреть сообщение
и не является какова языком программирования
Это ты так о JS? Счас набегут фронтендеры и расскажут язык это или нет
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,823
10.07.2025, 17:14
Цитата Сообщение от Stranger Посмотреть сообщение
XSS-атаки — злоумышленник внедряет вредоносный JavaScript-код в веб-страницу, который затем выполняется на стороне клиента.
Злоумышленник не может просто так внедрить JavaScript-код, для этого нужно чтоб была XSS-уязвимость. А эта уязвимость возникает на стороне php, когда выводят пользовательские данные без экранирования спец. символов, что делается на php.

Цитата Сообщение от Stranger Посмотреть сообщение
CSRF-атаки — заставляют пользователя выполнить нежелательные действия на сайте, где он уже авторизован, например, отправить форму с вредоносным запросом.
Тут JavaScript вообще не причем. Уязвимость CSRF возникает из-за особенностях работы браузера, что он с каждым запросом отправляет куки, и если авторизация реализована через куки, то можно сделать подставную форму. И если у злоумышленника нет прав доступа для совершении операции, то он может подсунуть вам какую-нибудь кнопку на другом сайте, нажав на которую вы сами совершите действие.
0
 Аватар для Stranger
15 / 11 / 7
Регистрация: 27.07.2019
Сообщений: 310
10.07.2025, 17:22  [ТС]
Цитата Сообщение от black1385 Посмотреть сообщение
Это ты так о JS? Счас набегут фронтендеры и расскажут язык это или нет
Front-end разработчики, конечно, ответит, что - это язык программирование, а Back-end разработчики ответят, что нет). А Fullstack-разработчикам будет вообще все равно, кто прав, а кто нет)
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,823
10.07.2025, 17:34
Цитата Сообщение от Stranger Посмотреть сообщение
PHP, по некоторым представлениям, более безопасен, чем JavaScript (JS)
Более безопасен в плане того, что в отличает от PHP пользователь может почитать код Javascript.
К примеру если у вас есть какие-то интеграции с серкетными ключами, то плохо делать запрос напрямую с клиента, светя ключами в javascrip-коде.. Лучше сделать, чтоб JS делал запрос на сервер, а сервер используя секретные ключи уже делал запрос на сторонний сервис.

Добавлено через 11 минут
Цитата Сообщение от Stranger Посмотреть сообщение
А Fullstack-разработчикам будет вообще все равно
Fullstack - это вообще не программисты.
0
 Аватар для Stranger
15 / 11 / 7
Регистрация: 27.07.2019
Сообщений: 310
10.07.2025, 18:22  [ТС]
Цитата Сообщение от sad67man Посмотреть сообщение
Fullstack - это вообще не программисты.
Почему? Это те люди, которые занимаются И Frontend разработкой, и Backend разработкой. Их вроде как и за этого и называют Fullstack-разработчиками. Универсальный, многофункциональным и т.д Разве не так?
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,823
10.07.2025, 22:25
Цитата Сообщение от Stranger Посмотреть сообщение
Это те люди, которые занимаются И Frontend разработкой, и Backend разработкой.
Ну раз уж вы говорите, что JS - это не язык, я решил тоже так подшутить.. Но как говорится в каждой шутке есть доля шутки.
Конечно Fullstack - это может быть и бывший бэкендер, который уже все освоил и познал дзен и позже переключился на фронт.. но это редкость..
Как правило они и там и там не очень.. так как физически нет возможности нормально погрузиться в одну из областей...
Как вы сказали у них может быть свое представление о бэке и фронте. Может так совпало, но самый ужасный код я видел именно от них, поэтому их мнение можно не учитывать
0
Эксперт .NET
 Аватар для Usaga
14136 / 9356 / 1350
Регистрация: 21.01.2016
Сообщений: 35,169
11.07.2025, 04:04
Цитата Сообщение от Stranger Посмотреть сообщение
Код JavaScript более уязвим к угрозам безопасности, так как выполняется на стороне клиента.
И поэтому на нём нельзя разделить число на тысячу, преобразовать в строку и добавить "К" в конце?..
3
 Аватар для Stranger
15 / 11 / 7
Регистрация: 27.07.2019
Сообщений: 310
11.07.2025, 12:13  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
И поэтому на нём нельзя разделить число на тысячу, преобразовать в строку и добавить "К" в конце?..
Можно, но и также можно в браузере отключить исполнение JS скриптов. И уже уверен в то, что уже нечего не преобразуется в строку и не добавится К в конце

Добавлено через 5 минут
Цитата Сообщение от sad67man Посмотреть сообщение
я решил тоже так подшутить.
Но я так и понял) Особенно когда начали говорит про XSS-атаки, CSRF-атаки вплоть до Fullstack. Не стал все воспринимать во всерьез
0
Эксперт .NET
 Аватар для Usaga
14136 / 9356 / 1350
Регистрация: 21.01.2016
Сообщений: 35,169
11.07.2025, 12:32
Цитата Сообщение от Stranger Посмотреть сообщение
Можно, но и также можно в браузере отключить исполнение JS скриптов. И уже уверен в то, что уже нечего не преобразуется в строку и не добавится К в конце
А это твои проблемы, что пользователь у себя скрипты отключил? Ты точно уверен, что такой маргинал является целевой аудиторией твоего сайта?
0
 Аватар для Stranger
15 / 11 / 7
Регистрация: 27.07.2019
Сообщений: 310
11.07.2025, 12:36  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Ты точно уверен, что такой маргинал является целевой аудиторией твоего сайта?
Не понял про маргинал) Что еще такое маргинал? Но наверное что-то интересное Оригинал наверное имелось введу?
0
Эксперт .NET
 Аватар для Usaga
14136 / 9356 / 1350
Регистрация: 21.01.2016
Сообщений: 35,169
11.07.2025, 12:54
Stranger, "маргинал" - человек, очень сильно озабоченный какой-то фигнёй, побуждающей его на неадекватные подходы к делу.

К примеру, выключать JS в браузере.
0
 Аватар для Stranger
15 / 11 / 7
Регистрация: 27.07.2019
Сообщений: 310
11.07.2025, 14:35  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
К примеру, выключать JS в браузере.
Понял
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.07.2025, 14:35
Помогаю со студенческими работами здесь

Счётчик просмотров
Хочу сделать счётчик просмотров, есть описание и ссылка на подробности и от того сколько нажата...

счетчик просмотров
у меня в скрипте имеется счетчик просмотров статьи. он работает, но не так как хотелось бы. т.е.,...

Не могу создать количество просмотров страницы
Уважаемые боги php, нужна ваша помощь, не знаю почему сам до сих пор не понял как, либо не знаю,...

количество просмотров темы форума php
как реализовать количество просмотров темы форума php? код который выводит темы форума вывод...

Узнать число просмотров
Доброго времени суток господа! Мучаюсь тут с одной головоломкой, суть работы такая. Узнаем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru