Кодинг

Программирование и все о нем. Трюки, подсказки, алгоритмы, интересные факты. Все что может занять любого программиста.

Сортировка многомерных массивов по ключу на PHP

35 комментариев

Практически перед каждым PHP-программистом становится задача отсортировать многомерный массив. К примеру вот такой вот:

$data=array(
	array('text'=>'str1', 'year'=>'2010', 'author'=>10),
	array('text'=>'str2', 'year'=>'2011', 'author'=>10),
	array('text'=>'str3', 'year'=>'2009', 'author'=>20),
	array('text'=>'str4', 'year'=>'2010', 'author'=>30),
	array('text'=>'str5', 'year'=>'2010', 'author'=>20),
	array('text'=>'str6', 'year'=>'2011', 'author'=>10),
	array('text'=>'str7', 'year'=>'2011', 'author'=>20),
	array('text'=>'str8', 'year'=>'2009', 'author'=>20),
);

По, допустим, ключу year, как же сделать это грамотно?

Читать далее →

Множественные формы слов (PHP Класс)

5 комментариев

Все наверное замечали как на многих сайтах встречаются нелепые предложения в которых указывается число неких вещей. А нелепые потому что в них обычно не согласуется форма слова с их количеством. Пример:

  • В вашей корзине 2 заказов. На сумму 121 рублей.
  • Запись имеет 3 комментариев
  • На сайте 32 человек

Вообщем «Кто стучится в дверь моя, видишь дома нет никто, приходи ко мне вчера, будем съели пирожки». Что же делать и как это исправить?

На самом деле ничего сложного нету, и можно научить наш сайт говорить на вполне русском языке.
Читать далее →

Рисуете ли вы ваши алгоритмы на бумаге?

10 комментариев

В инсте меня вегда раздражало то что преподы на уроках программирования заставляли рисовать нас блок-схемы наших будующих программ. Тогда я не видел в этом смысла, во первых потому что проектировал программу  по мере ее написания, во вторых все  программы были настолько небольшими что смысла в этом абсолютно не было.

Теперь же у меня переодически возникает потребность визуализировать свои алгоритмы, архитектуры, связи и прочее. Почему? Читать далее →

Пишем PHP фреймворк, модель MVC (4%)

14 комментариев

В данной статье пойдет речь о проектировании архитектуры фреймворка. Наконец таки я решил набросать то, как будет приблизительно выглядеть архитектура в моем фреймворке. Конечно она не будет отличатся чем то особенным от остальных фреймворков, но необходимо составить схему и нарисовать ее, чтобы в дальнейшем ей придерживаться.

Естественно за основу будет взята модель MVC. В веб программировании MVC — самая, на мой взгляд, «правильная» модель архитектуры. Читать далее →

Точное определение браузера пользователя

12 комментариев

браузеры Периодически перед любым программистом становится задача точного определение браузера, который использует пользователь. Сегодня наткнулся на отличный класс для точного определения браузера на PHP. Причем, он может определить не только браузер пользователя, но и определить операционную систему пользователя.

Определение происходит на основе заголовка User-Agent. То есть по сути никаких новых методик, но впечатляет количество определяемых браузеров. Также класс достаточно удобен в использовании.

Ссылка на источник: chrisschuld.com
Ссылка на архив: Browser-1-9.zip Читать далее →

Пишем PHP фреймворк, начало (2%)

2 комментария

Добро пожаловать в цикл статей «Пишем PHP фреймворк». В данном цикле я буду поэтапно описывать как написать свой фреймворк. Обратите внимание в заголовке указан процент — это приблизительное количество выполеного объема работ по написанию своего php фреймворка.

Собственно сегодняшнюю дату можно считать датой начала разработки Intellect Framework-а. Напомню, я хочу разработать свой php фреймворк. Тока прошу, не надо мне говорит о том что таких фреймворков уже создано достаточно много, и что сейчас PHP разработчику достаточно выбрать какой нибудь из них, а не разрабатывать свой.
Читать далее →

Реализация шифра ГОСТ 28147-89 на PHP

52 комментария

Вообщем на днях в универе задали курсовик. Нужно было реализовать на любом языке программу шифрующую по алогритму ГОСТ 28147-89.

ГОСТ 28147-89 — блочный шифр с 256-битным ключом и 32 циклами преобразования, оперирующий 64-битными блоками. Основа алгоритма шифра — Сеть Фейстеля. Базовым режимом шифрования по ГОСТ 28147-89 является режим простой замены.(определены также более сложные режимы гаммирование, гаммирование с обратной связью и режим имитовставки).
Читать далее →