|
|
« Апрель 2024 » | Пн | Вт | Ср | Чт | Пт | Сб | Вс | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
|
|
|
|
|
|
|
|
|
» Программирование
|
$str =~ s/[\<\x3C][\/\s]*(?:table|spacer|o|tbody|h1|h2|h3|h4 |h5|h6|tr|td|img|iframe|span|pre|div|a|b|p|strong|i |s|br|\?xml|font|hr|ol|li |ul|BLOCKQUOTE|em|u) (?:\>|(?:\:|\s)[^\>\x3E]*[\>\x3E])//gim; P.S. Все-таки нужный...
|
Надо же с первого раза получилось написать рег, который выбирает имя файла из пути: /^.*(?:\\|\/)([^\\\/]*?)$/ А еще какой-то гад стащил мою книгу "Регулярные выражения" 2-е издание от O'Really
|
Код Perl: sub _move_unit { my ($self, $data) = @_; if ($data->{'near'} >= $data->{'left'} && $data->{'near'} <= $data->{'right'}) {return 0} my $skew_tree = $data->{'right'} - $data->{'left'} + 1; my $skew_level = $data->{'level_new'} - $data->{'level'}; if ($data->{'right'} < $data->{'near'}) { my $skew_edit = $data->{'near'} - $data->{'left'} + 1 - $skew_tree; $self->{'DBI'}->do('UPDATE '.$self->{'table'}. ' SET '. $self->{'left'}.' = CASE WHEN '.$self->{'right'}.' <= '.$data->{'right'}.' THEN '. $self->{'left'}.' + '.$skew_edit.' ELSE CASE WHEN '.$self->{'left'}.' > '.$data->{'right'}.' THEN '. $self->{'left'}.' - '.$skew_tree.' ELSE '.$self->{'left'}.' END END, '. $self->{'level'}.' = CASE WHEN '.$self->{'right'}.' <= '.$data->{'right'}.' THEN '. $self->{'level'}.' + '.$skew_level.' ELSE '.$self->{'level'}.' END, '. $self->{'right'}.' = CASE WHEN '.$self->{'right'}.' <= '.$data->{'right'}.' THEN '.
...
Читать дальше »
|
Раздробил основной скрипт на модули по разделам... С одной стороны - удобно, загружаешь код всего в 500-1000 строк, а не в 5000-10000, но с другой... а модули-то вообще для этого?
|
Причина только одна: Когда проделываешь очередной "финт ушами", как в Perl, по привычке, спокойно ложишься спать довольный собой, а на следующий день вдруг натыкаешься на функцию, которая твой "финт ушами" делает в одно действие... Обидно, да...
|
Мля! В PHP казывается есть условный оператор ?:, а я с IF-ами онанизмом занимался...
|
Настал черед, когда алгоритм Nested Sets потребовалось реализовать на PHP. Не долго думая был взят класс PHP cdbtree (dbtree) дабы посмотреть, что он может... Оказалось, может немногое... но не это меня так удивило... меня удивил еще один класс, который шел в нагрузку к основному - для работы с базой данных. Открыв его, я сначала удивился, ибо большинство методов (конструкторов) состояли из одной строки. Смысл создавать объект, если выигрыша по размеру кода просто нет? Но хорошо, подумал я... это сделано специально, что бы можно было подставить интерфейс к базе данных другого вида, тот же PostgreSQL или Oracle. Вот, думаю, какие "прохаваные" программеры, даже это учли... но радость была не долгой... Вернувшись в основной класс, я обнаружил, что в запросах используются уникальные команды MySQL. То бишь эти запросы в других БД SQL - не канают... P.S.: Говно, в общем, этот класс... буду писать свой... P.P.S.: А у меня запросы универсальные... вот... и мне практ
...
Читать дальше »
|
Вот выложил вчера статью из цикла Nested Sets и проверил папку в которой хранятся наброски новых статей. Набросков оказалось довольно много: Из цикла "Nested Sets": 1. От теории к практике - Написание класса PHP или гонки слепых котят; 2. Практика Nested Sets - Perl. Универсальный каталогизатор; 3. Практика Nested Sets - Perl. Выводим каталоги на сайте; 4. Практика Nested Sets - PHP. Выводим каталоги на сайте; Из цикла "Программирование Perl": 1. Авторизация пользователей на сайте или сессии своими руками; 2. Шаблонизатор. Пишем модуль; 3. Делаем свой ящик с инструментами или долой requere; Из цикла HTML+JavaScript; 1. Форма в форме; Итого 8 статей... блин... и еще пара-тройка в задумках... где же время взять? UPD: Нет последнюю статью по HTML выложил прямо сейчас... все равно там нет никаких "заморочек"...
|
Сегодня выложил одну новую статью и три старых... да уж... особенно понравились старые, в них особо не извращался над кодом, да и код оставляет желать лучшего... ну что ж... опыт растет... Думаю, написать улучшенные статьи на основе старых. Все равно технология осталась та же, только гораздо улучшена и "вылизана"... P.S. Кстати в процессе написания, еще три статьи и еще три в планах, не считая, что планирую еще три написать... Мрак, и где время найти?
|
|
|
|
|
|
|
|
|
|