<MyRusakov.ru />

Создание движка на PHP и MySQL 2.0

Создание движка на PHP и MySQL 2.0

Видеокурс "Создание движка на PHP и MySQL 2.0" научит Вас создавать профессиональные движки для сайтов на PHP и MySQL с использованием ООП и паттерна MVC.

В курсе разобрана вся теория по структуре движка: как всё устроено, какие должны быть объекты, какая у них иерархия и как они взаимодействуют между собой.

В практической части будет создан движок с чистого листа. Будет создано ядро, все адаптеры, все вспомогательные классы, а также классы для работы с объектами базы данных. И чтобы курс был максимально полезным, будет создан движок для сайта MyRusakov.ru.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Склонение слов на PHP

Склонение слов на PHP

Весьма популярной проблемой, с которой сталкиваются Web-программисты, это склонение слов на PHP. Например, нужно вывести, сколько минут назад была оставлено какое-нибудь сообщение. Можно написать просто число и слово "минут". Но тогда будет написано весьма странно, например, "1 минут", "2 минут" и так далее. Фактически, без склонения слов на PHP Вам не обойтись, если, конечно, Вы хотите писать по-русски.

Проблема новичкам покажется очень сложной, но, на самом деле, у склонения слов есть определённая закономерность. Посмотрите сами: "1 минута, 2 минуты, 5 минут, 11 минут, 19 минут, 21 минута, 22 минуты, 25 минут и так далее". Видите закономерность? 1, 21, 31, 41 - всегда будет "минута". Если младший разряд больше 1-го и меньше 5, при этом само число при делении на 100 имеет остаток больше 20 (то есть, например, не число 12 и не 112), то будут "минуты". В остальных случаях "минут".

А вот дальше уже начинается построение алгоритма, поскольку закономерность очевидно имеется. Я приведу Вам, на мой взгляд, самый красивый алгоритм. Он наиболее короткий, и в то же время очень быстрый.

<?php
  function getWord($number, $suffix) {
    $keys = array(2, 0, 1, 1, 1, 2);
    $mod = $number % 100;
    $suffix_key = ($mod > 7 && $mod < 20) ? 2: $keys[min($mod % 10, 5)];
    return $suffix[$suffix_key];
  }
  $array = array("минута", "минуты", "минут");   $n = 21;
  $word = getWord($n, $array);
  echo "$n $word<br />";
  $n = 11;
  $word = getWord($n, $array);
  echo "$n $word<br />";
  $n = 4;
  $word = getWord($n, $array);
  echo "$n $word<br />";
?>

Запустив данный скрипт Вы увидите, что склонение слов на PHP происходит на ура. Могу лишь добавить, что помимо "минут" там может быть "день", "час", "человек", "компьютер" и все другие существительные, которые склоняются в зависимости от числительного.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (8):

lion337 lion337 03.07.2012 01:32:57

Спасибо Михаил за скрипт как раз в тему, давно хотел создать такой скрипт да руки не доходили. Побольше бы таких продуктивных уроков. А так ты молодец!

Ответить

ac-40-6.0 ac-40-6.0 07.07.2012 17:35:07

Как оказывается просто! Я пошел длинной дорогой. if(($age===1)||($age===2)||...){$mes_age = 'года';}

Ответить

malina95 malina95 15.06.2013 16:17:01

Михаилу это легко делать потому что он умный, и знает математику, я не знаю математику и мне написать такое никогда не удастся

Ответить

lev_100rus lev_100rus 27.07.2013 12:36:58

Михаил, у Вас ошибка в слове "компьтер"

Ответить

Admin Admin 27.07.2013 17:38:18

Спасибо, исправил.

Ответить

SSkiller SSkiller 13.12.2013 15:14:42

Это перевод на русский язык, а если сайт мультиязычный? Для этого все уже давно придумано и есть такие утилиты как gettext

Ответить

tikkiwiki tikkiwiki 16.12.2013 10:40:46

Ваше дело, используйте их.

Ответить

tr-td table tr-td table 17.06.2014 14:03:42

Прокомментируйте, пожалуйста, функцию.

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.