Введение в Ctype функции

Ctype расширение предоставляет целый набор функций для проверки того, что символы строки относятся к корректному типу. Это расширение доступно по умолчанию начиная с PHP 4.2 и выше.

Если вы когда-либо программировали на C, то вы возможно знакомы с функциями определения типа символов. Если нет, то самое время познакомиться с их реализацией в PHP. Подробнее

Протокол HTTP: все что нужно для веб-разработки. Часть 1

HTTP расшифровывается как “Протокол передачи гипертекста” и является протоколом прикладного уровня для передачи данных между распределенными системами. В настоящий момент именно он является основополагающим элементом в построении Веба. В отличие от многих других протоколов передачи HTTP не сохраняет своего состояния между запросами. Каждый веб-разработчик должен быть хорошо знаком с особенностями данного протокола и порядком его работы. Это весьма полезные знания, которые нужны в процессе разработки любого веб-приложения. Подробнее

Retina: проводим проверку сайта

Еще совсем недавно компания Apple представила миру свои девайсы с инновационным дисплеем Retina, а у веб-разработчиков уже появились серьезные проблемы. Дело в том, что страница одного и того же сайта может выглядеть совсем по-разному на Retina и на обычном дисплее. Все дело в огромном DPI у Retina. Любая графика начинает выглядеть замыленной, с явной пикселизацией, ведь 1 пиксель CSS становится равен квадрату 2×2 на Retina. Существуют методики подмены графики на экранах с таким pixel-ratio, но сейчас не об этом. Подробнее

Интерфейсы или Абстрактные классы?

PHP разработчики имеют широкий набор полезный инструментов для объектно-ориентированной разработки. Начиная от предметных моделей, заканчивая концепциями абстрактных классов и интерфейсов. Разработчик может использовать каждый инструмент по-своему и предложить свой набор интересных решений. Подробнее

PHP5.5: Try/Catch/Finally

Обработка исключений доступна в PHP, начиная с 5-ой версии. Это позволяет иметь более предсказуемый код в случае, если что-то идет не так и возникает исключение. Но, начиная с версии 5.5, обработка исключений развилась до того уровня, каким язык должен был обладать с самого начала, а именно, появилась “finally“-часть Подробнее

QueryLoader. Красивая загрузка, но….

Недавно столкнулся с задачей по сокрытию процесса загрузки тяжеловесной страницы. На ум сразу пришел известный плагин для jQuery под названием QueryLoader. Суть его проста, пока не загрузится вся страница целиком со всеми картинками, мы будем видеть overlay с progress bar. По желанию там все отлично кастомизуется либо через css, либо прямо через код плагина. Можно добавить различные объекты на overlay и прочее. Подробнее

Яндекс карты. Делаем свою карту меток

Захотелось рассказать о своем недавнем опыте создания карты меток. Задача состояла в следующем: необходимо создать на основе API Яндекс карт свою карту меток с возможностью добавления новых меток , редактирования старых, удаления. Метки могут быть разных типов и должны отличаться иконками. Кроме того, необходимо учесть возможность создания ссылок на метки. Сделать это необходимо в виде модуля к существующему сайту и в дальнейшем встроить туда. Подробнее

Nivo Slider – лучший выбор

Недавно назрела необходимость найти хороший настраиваемый слайдер на основе Jquery, где можно показывать большие красивые картинки с приятными эффектами смены. Долго бродил по просторам Google’а  и никак не мог найти решение по душе с приятным внешним видом и дружелюбной документацией, но все же нашел. Сначала понравилась вот эта вещица. Решил покопаться в коде и нашел таки, что же это за слайдер. Итак, это был Nivo Slider. Подробнее

Zend Framework. Используем технологию Ajax.

Сегодня попробуем написать что-нибудь на Zend Framework с использованием технологии Ajax.  Надо сказать, что ZF довольно гибок и легко подцепляет различные сторонние библиотеки (не говоря уже о ваших собственных). Это я к чему? А к тому, что использование асинхронных запросов к серверу зачастую на практике организует с использованием каких либо библиотек или фрэймворков. Для меня наибольший интерес представляет jQuery. Не буду вдаваться в подробности почему, ведь многие и так знают все его удобства. jQuery можно использовать не только для создания визуальной привлекательности вашим страницам. Он имеет кроме всего этого довольно мощный функционал по созданию и управлению XHR объектами. Касаемо интеграцией с ZF тут проблем нет – подключай .js в bootstrap’е и вперед. Для любителей полной интеграции с PHP есть такая библиотека какjQuery-PHP. На своем опыте я ее не испытывал, но с первого взгляда преимущества там есть. Но давайте отложим в сторону все библиотеки кроме самой jquery.js, и попробуем написать маленькое приложение, где будут выводится “советы дня”. Подробнее

MySQL и триггеры. Тонкости и особенности.

Давайте поговорим о триггерах в MySQL. Это сложная и в некотором роде больная тема в MySQL. Они появились, начиная с версии 5.0.2, и пока еще не все с ними “устаканилось”. У триггеров тут есть несколько тонкостей и о них стоит помнить каждый раз, когда мы пишем очередной триггер.

Триггер можно создавать всего на 3 события INSERT, UPDATE, DELETE. Для каждого из этих событий есть возможность управлять моментом срабатывания триггера: “до” события, “после” события. Итого, со всевозможными комбинациями получаем 6 типов триггеров.
Подробнее

CSS меню в стиле Web 2.0.

Для создания CSS навигации, нам потребуется 2 графических элемента, которые можно получить из статьи о рисовании web 2.0 менюшек. Это градиентная полоска на всю ширину и маленький треугольник для отметки текущего раздела сайта. Остальное мы создадим с помощью CSS.

Для нашего CSS меню мы используем обычную разметку списка ul с элементами li в качестве пунктов меню.
Подробнее

Распределение трафика. Объединяем все партнерки.

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

Итак, начнем. Основная идея такова: создадим нечто вроде очереди, замкнутой в кольцо. В очереди каждый узел – это отдельный URL платника. Далее при обращении к скрипту происходит выбор. Я организовал 2 типа выбора из набора платников: равномерный рандом и выбор по очереди в цепочке. Давайте начнем смотреть на код и станет все понятно.

Первое – это класс отдельного узла. Как я говорил узел – это URL платника с определенной служебной информацией.  Рассмотрим:
Подробнее