Архив

Архив раздела ‘PHP’

Быстрый и грязный хак вордпресса

18 Декабрь 2009 11 comments

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

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

Non-triming space

1 Декабрь 2009 2 comments

Когда Женя показал мне свою заметку о неубиваймом пробеле я подумал это недостатки php и сказал, что в Java такой фигни нет и не будет. Оказалось показалось, Java тоже грешит этой фигней.

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

Pattern: Decorator

3 Август 2009 6 comments

Сколько раз обещаю себе больше не писать на PHP, и всеравно пишу. Вот и недавно разродился небольшим классом реализующим шаблон декоратор.

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

Pattern: Singleton

4 Апрель 2009 Нет комментариев

Шаблон проектирования Singleton (одиночка) используется для того чтобы класс можно было создать только один раз. На практике он применяется вместе с другим шаблонами проектирования такими как pattern Registry и pattern ServiceLocator

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

Wordpress: плагин переводчик заголовков

28 Март 2009 9 comments

Позавчера можно сказать девственности лишился, написал свой первый плагин под WordPress. Функционал не сложный, но нужный. Когда сохраняешь статью ссылка делается из названия с удалением всяких нецензурных символов и заменой пробелов на тире. Но никто же своим страницам не даёт русские ссылки, это плохо во-первых для SEO, а во-вторых просто не читабельно потому что буквы преобразуются в ASCII коды, да еще и по 6 символов на букву! Так например слово 'бля' будет зашифровано как %d0%b1%d0%bb%d1%8f. А переводить каждый раз руками все заголовки лень, вот я и прикрутил свой Google Transtator к WordPress'у.

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

Счастливый билетик

7 Март 2009 3 comments

Вчера речь зашла о 'счастливых талончиках', если кто на общественном транспорте не ездит то это такие талончики у которых серийный номер состоит из 6 цифр и сумма первых трёх равна сумме последних трёх. Так вот стало очень интересно какая вероятность того что тебе попадется 'счастливый талончик', для этого я решил написать функцию на PHP, но Apache под руками не оказалось и я написал на JavaScript. Сначала я думал что оптимальный алгоритм это разделение строки на две части, сложение цифр первой и второй половины, и сравнение.

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

break $me;

24 Январь 2009 1 комментарий

Удивительно что такое большое количество людей не знает, что оператор break в PHP может принимать параметр который указывает какое количество вложенных циклов нужно остановить. Более того он может принимать переменную, что вряд ли полезно, но радует наличием возможности. Об этом мелким шрифтом написано в мануале, но судя по количеству кода, где я видел его использование, даже самые одаренные гуру читают ман по диагонали.

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

Google Translate

28 Август 2008 101 comments

Сейчас пытаюсь возродить свой бывший сайт под названием ForbidenWish. Там много книг и вносить их в БД вручную я не собираюсь, поэтому написал небольшой скрипт который обходит директории, парсит имена файлов и заносит их в базу. Вот в один момент я понял что простая транслитерация названия книги это не интересно, а иногда и глупо получалось, и я вспомнил про форум ДКлаб у них там при создании темы заголовок переводиться на английски (причем весьма неплохо) и подставляется в url. Я практически уверен что Котеров не писал переводчик и просто пользуется каким-то сервисом, первое что мне пришло в голову - Google. Сначала думал парсить html страницу но потом понял что там все намного проще и перевод забирается javascript'ом, В общем после непродолжительных изысканий я придумал вот эту функцю.

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

Pattern: ServiceLocator

2 Май 2008 2 comments
Статья Pattern: Registry имеет непосредственно отношение к этой статье, советую ознакомиться перед прочтением.

Паттерн ServiceLocator изначально спроектирован для Java и дает возможность находить сервисы, зная их имя. В Java для того чтоб найти Enterprise JavaBeans (EJB) или Java Message Service (JMS) нужно использовать JNDI API. Это накладывает на код некоторые ограничения, например операции поиска и создания компонентов служб могут быть сложными (ресурсоемкими) и могут использоваться периодически в различных клиентах приложения. Для этого ввели паттерн, который позволяет абстрагироваться от использования JNDI и скрытия сложностей создания исходного контекста, а также может повторно использоваться несколькими клиентами.

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

Наконец-то заработал поиск

26 Апрель 2008 2 comments
Статья более не актуальна, так как относилась к старому, самописному движку.

Вот я и сделал наконец поиск по сайту, вообще еще много чего надо сделать, а то я даже страницы добавляю через MySQL. Сейчас поиск ищет по заголовку, описанию и собственно телу страницы, самое приятное в нем то, что в нем есть ранжирование результатов. Если кому-то интересно как такое сделать то читайте дальше.

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