Базы данных → Postgresql. Разбить массив на строки
Все наверно или сталкивались, или столкнуться с проблемой разбиения массива ARRAY[anyelment], anyelment, …] на строки.
» Читать полностью…
Все наверно или сталкивались, или столкнуться с проблемой разбиения массива ARRAY[anyelment], anyelment, …] на строки.
» Читать полностью…
Казалось бы столько статей написано про это и всё же я не поленюсь еще раз озвучить это в блоге. Да, как бы тривиально и старо это не звучало, дейсвительно не надо забывать зачем мы все сталь программистами. Я вот считаю, что если уж заниматься этим, то по-полной, уделяя программированию кучу времени и вдумываясь в код.
» Читать полностью…
Долго не мог понять как обходить массив в пользовательской процедуре в PostgreSql. Надо было распарсить url по знаку (&) и пробежать по параметрам по одному.
Так plpgsql язык для меня новый, решение нашел не сразу. Предлагаю вам ознакомиться:
1 2 3 4 5 6 | queryArray = string_to_array(queryString, '&'); FOR i IN array_lower(queryArray, 1) .. array_upper(queryArray, 1) LOOP queryParam = queryArray[i]; ... END LOOP; |
1 2 | queryString text - наша строка после знака вопроса и до якоря (#) queryParam text - собственно параметр. |
И как только я не пытался обходить массивы и в WHILE LOOP и просто в LOOP, но это вариант, пожалуй самый правильный.
Всем удачи в получении новых знаний.
Все началось с того, что 04 октября 2011 года вечером моя жена сказала мне, что интернет не работает и что, когда она позвонила в службу поддержки, сказали что поломка «нормальная такая». На следующий день я решил сам спросить что такое – сказали, что кровельщики сорвали провода – ну, это, конечно может быть. Жду. Интересно сколько времени может понадобиться, чтобы починить?
» Читать полностью…
И опять burik666 подсказал мне одну очень ценную фичу!
1 2 3 4 5 6 7 8 9 | #!/bin/bash echo -e "\033[00;30m 00;30m \033[00m \033[02;30m 02;30m \033[00m \033[01;30m 01;30m \033[00m \033[01;40m 01;40m \033[00m" echo -e "\033[00;31m 00;31m \033[00m \033[02;31m 02;31m \033[00m \033[01;31m 01;31m \033[00m \033[01;41m 01;41m \033[00m" echo -e "\033[00;32m 00;32m \033[00m \033[02;32m 02;32m \033[00m \033[01;32m 01;32m \033[00m \033[01;42m 01;42m \033[00m" echo -e "\033[00;33m 00;33m \033[00m \033[02;33m 02;33m \033[00m \033[01;33m 01;33m \033[00m \033[01;43m 01;43m \033[00m" echo -e "\033[00;34m 00;34m \033[00m \033[02;34m 02;34m \033[00m \033[01;34m 01;34m \033[00m \033[01;44m 01;44m \033[00m" echo -e "\033[00;35m 00;35m \033[00m \033[02;35m 02;35m \033[00m \033[01;35m 01;35m \033[00m \033[01;45m 01;45m \033[00m" echo -e "\033[00;36m 00;36m \033[00m \033[02;36m 02;36m \033[00m \033[01;36m 01;36m \033[00m \033[01;46m 01;46m \033[00m" echo -e "\033[00;37m 00;37m \033[00m \033[02;37m 02;37m \033[00m \033[01;37m 01;37m \033[00m \033[01;47m 01;47m \033[00m" |
Давно хотелось сделать что-то, что помогало бы отслеживать процент выполнения задачи в cli. Как раз сегодня с утра приятель и коллега burik666 случайно дал мне вектор, дав код крутяшки:
1 | $ php -r '$a="\|/-"; while (true){ for ($i=0; $i<4;$i++){echo "\r",$a[$i].$a[3-$i]; usleep(100000); } }' |
Я собственно тут же знал как это дело применить, так как давно хожу с идеей прогресс бара для cli в голове.
Долго думать не пришлось, состряпал на 5 минут сие творение:
1 2 3 4 5 6 7 8 9 | function progress($percVal) { echo "\rProgress: |".str_pad(str_repeat('-', $percVal / 2), 50, ' ',STR_PAD_RIGHT)."| {$percVal}%"; } for($i = 1; $i < 100; $i++) { progress($i); usleep(100000); } |
Код до ужаса прост, надо только знать стандартные строковые функции php.
Вся магия в «\r» – он собственно возвращает каретку в начало строки
Здравствуйте! Хочу рассказать как столкнулся с непростительной ошибкой, а может быть и нет, провайдера Interzet.
Несколько дней назад на обоих моих домашних компьютерах на совершенно разных сайтах начал всплывать непонятный баннер, но сразу я как-то внимания на него не обратил. И только вчера, после того, как он появился у меня на страницах Яднекс.Метрика, Вконтакте и HeadHunter я был очень расстроен и решил посмотреть что же там такое.
» Читать полностью…