May 7, 2008 at 6:08 pm
· Куски кода, Программирование
Мастера регулярных выражений могут делать настоящую магию. Вместо того, чтобы писать сложные лексические анализаторы, они могут одной строчкой сделать всю работу. Это как игра го - изучить основы очень просто, но чтобы стать настоящим профессионалом нужны годы опыта.
Допустим, есть строка
CODE:
-
begin someFunction("test"); end;
Нужно выделить из неё
Элементарно
PHP:
-
$s = 'begin someFunction("test"); end;';
-
-
выведет
Но в боевых условиях пользователи обязательно рано или поздно добавят параметр со скобками
CODE:
-
begin someFunction("test",(5+3)*2); end;
Читать полностью >>
Permalink
April 30, 2008 at 5:16 pm
· Куски кода
В одной из наших программ конфигурация находится в файле config.php в таком формате:
Этот конфиг правится только умными людьми, которые знают PHP и не нужно создавать для них лишние уровни абстракций.
Задача - загрузить этот конфиг в программу. Просто сделать include('config.php') нельзя, потому что можно нечаянно перезаписать какую-то переменную, а в конфигурационном файле писать $config['param1'], $config['param2'] слишком долго.
Читать полностью >>
Permalink
March 17, 2008 at 4:50 pm
· CakePHP, Куски кода
Я всегда выступал за то, что в большинстве случаев надо, в первую очередь, оптимизировать время разработчика, а не пытаться написать самый быстрый и нетребовательный к ресурсам код. Если код работает медленно или съедает много памяти, то можно это иногда обходить другими путями.
Читать полностью >>
Permalink
January 30, 2008 at 12:25 am
· Куски кода
На некоторых форумах, если перейти на них с поисковика, подсвечиваются ключевые слова, которые были заданы в поиске. Это помогает быстрее найти нужную информацию. Теоретически можно пойти дальше и немного менять страницу в завимости от категории поискового запроса посетителя.
Читать полностью >>
Permalink
January 28, 2008 at 6:43 pm
· CakePHP, Куски кода
Рано или поздно у каждого программиста возникает желание написать свой Smarty
.
Называются разные аргументы - более быстрый, гибкий, удобный и так далее.
После того, как я начал пользоваться CakePHP ко мне неожиданно пришло просветление - это было как раз то, что я хотел. Но иногда возникают задачи, когда действительно нужны простейшие шаблонизаторы и CakePHP становится слишком тяжёлой артиллерией.
Читать полностью >>
Permalink
January 10, 2008 at 2:49 pm
· Куски кода
Распростанённый формат передачи настроек FTP-соединения - это ftp://user:password@host:port/path/, где обязательным является только host. Но для работы с FTP надо разбирать эту строку. Я написал себе небольшую функцию для этого.
UPD: Когда я писал это, то забыл о том, что есть стандартная функция parse_url. Зато моя подставляет логин, пароль, порт, если они не указаны, что удобно для подключения к FTP-серверам с анонимным доступом.
Читать полностью >>
Permalink
December 8, 2007 at 6:37 pm
· Куски кода
В каждом сборнике советов о том как сделать блог более популярным есть "Напишите Top10 чего-то". Вот я решил написать Top10. Но как истинный программист, вместо 10 бессмысленных фактов написал алгоритм как правильно выбирать Top10 чего-то.
Допустим, у вас есть сайт со статьями и вы хотите сделать Top10 статей, учитывая количество их просмотров. Не торопитесь, подумайте сначала, зачем вы хотите это сделать. Наверное, чтобы показать людям статьи, которые могут быть им наиболее интересны. Но показывая одни и те же Top10, вы искусственно увеличиваете количество просмотров статей, которые находятся в топе и они, возможно, случайно туда попав, уже никогда не исчезнут. В то же время посещаемость надо учитывать, потому что всё же корреляция посещаемость-интересность есть.
Читать полностью >>
Permalink
December 5, 2007 at 10:14 am
· Куски кода
В Delphi есть такой приятный оператор div - деление нацело. То есть 7 div 3 = 2, 7 mod 3 = 1. В PHP есть аналог mod - 7 % 3 = 1, а вот есть ли аналог div я постоянно забываю 
Самое интересное, что алгоритм выяснения постоянно одинаковый. Я захожу на php.net/случайная_функция (кстати, удобнейшый вид вызова справки и самый простой способ добраться до мануала не выбирая версию online и язык), там нахожу php.net/manual/en/language.operators.arithmetic.php и ругаюсь, потому что аналога нет.
Казалось бы, Вова, что сложного написать floor($a/$b)? А вот нет, меня потянуло читать комментарии в которых часто есть хорошие советы и куски кода.
Читать полностью >>
Permalink
November 23, 2007 at 4:40 pm
· Куски кода
Приятно иметь "умные" функции, в которые всё равно что передавать - с помощью какой-то магии она сама поймёт что ей передали и что нужно с этим сделать. Например, когда нужно сделать htmlspecialchars, лучше иметь одну функцию и для одной строки, и для массива. Вот как я это решал такие задачи раньше:
Читать полностью >>
Permalink
October 22, 2007 at 9:23 pm
· CakePHP, Куски кода, Модели, Офф-топик
Как вы оцениваете свой уровень как программиста? Несмотря на то, что меня Влад дважды похвалил :), я свой уровень оцениваю на 3 с плюсом (по 5-бальной шкале). Каждый день узнаю такие интересные финты, что хочется посыпать голову пеплом, за то, что сам до этого не додумался.
Сегодня узнал способ легко кешировать результаты функции, которые не меняются при условии одинаковых входящих параметров.
Читать полностью >>
Permalink