Deerua about Coding @ deer.org.ua
Введите пароль: Чужой компьютер Deerua about Coding Блог о кодинге, автор Deerua coding, javascript, css, html, php, jquery, mysql, deerua Deerua about Coding [/] !OOP .htaccess 1px table bug Chrome DOM HTML5 HabraAlert IE6 Internet Explorer Math OnMouseOver SEO UltraEdit ZenCoding absolute addons address bar analytics apache bookmarks browsers bugs canvas cellpadding cellspacing cgi charset className clone coordinates cp1251 crossbrowser css css2 css3 cursor debug delete div document eAccelerator email embedet encoding event examples explode expression firebug firefox flash floor font fonts foreach form framework function getElementById getElementsByTagName getTime google height hidden html iconv id iframe img import in_array input insertBefore javascript jquery lifehacking linux localhost lowsrc magik mail margin md5 microsoft minijQuery mozilla mysql nextSibling nowrap ondemand onload optimizing padding parentNode php png fix pointer position preload previousSibling print_r prototype random regexp removeChild removeNode rocon script scrollbars scrolling selectors setAttribute setTimeout slice snippet style table tag values tags td tools tr transparency useful utf8 valid validate virtualhost w3c white-space width windows yass Забытые тэги УПП знаки вопроса истинка шпаргалка toggle tags RTFM: php 5 , css 2 , html 4 , xhtml 1.1 Избранное Сравнение таблиц в двух БД (и больше) usejquery.org.ua Хохохо, miniJquery 0.0.1.3a HabraAlert 0.2 Hard Javascript: Chain Fucntions (jQuery style) -> Функции цепочками PHP: get google.PR end yandex.QI (тИЦ) CSS: Плавающие блоки с разной высотой, с выравниванием в ряду по самому высокому CSS: самый простой футер, приклееный вниз (Crossbrowser bottom fixed footer) Hard JavaScript: декораторы (decorators) deerua: Firefox addons collection PHP File Manager Универсальный IE6 png fix Тире, минус, перенос %) Конвертация кириличной строки (Cyrillic UTF8) в транслит CSS: transparency in all browsers getElementById IE BUG JavaScript: print_r (array and object dump) 100% загрузка функции Javascript (без onload), после загрузки всей страницы … Самые комментируемые за всю историю Универсальный IE6 png fix CSS: самый простой футер, приклееный вниз (Crossbrowser bottom fixed footer) JavaScript: submit buttons like default links td nowrap в css CSS3: button CSS: математические операции в величинах «Обратный» паттерн PHP: BBcode to HTML setAttribute(«class») не работает в ИЕ (Internet Explorer) Прикол с аддоном IE Tab Plus … 227 заметок ненаглядно Архив за 2011 , 2010 , 2009 , 2008 год Март 2011 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 31 24 марта 2011, 12:45 8 дней назад PHP: strtolower, strtoupper и кириллица Эти функции на кириллицу просто так не обращают внимания. Строки остаются без изменений, печаль и т. д. В данном случае могут помочь mb_* мультибайтовые аналогичные функции, но если их нет, нужно просто правильно поставить локаль, и простая функция заработает как нужно. setlocale ( LC_ALL , ' ru_RU ' ) ; $ name = strtolower ( $ name ) ; Комментировать… Теги: php 20 марта 2011, 23:35 12 дней назад PHP: sort multiple array (ASC, DESC) function array_orderby (){ $ args = func_get_args () ; $ data = array_shift ( $ args ) ; foreach ( $ args as $ n => $ field ) { if ( is_string ( $ field ) ) { $ tmp = array () ; foreach ( $ data as $ key => $ row ) $ tmp [ $ key ] = $ row [ $ field ] ; $ args [ $ n ] = $ tmp ; } } $ args [] = &$ data ; call_user_func_array ( ' array_multisort ' , $ args ) ; return array_pop ( $ args ) ; } $ results = array_orderby ( $ results , " P " , SORT_DESC , " GD " , SORT_DESC ) ; Комментировать… Теги: php 17 марта 2011, 10:46 15 дней назад PHP: превращаем слово единственного числа в множественное Нужно было, быстро на коленке стряпать такую вот функцию. Изначально она была сделана по примерам возможных слов, и приняла такой вид: function make_multiple ( $ word ) { $ word = trim ( $ word ) ; $ lst1 = substr ( $ word ,- 1 ) ;$ rest1 = substr ( $ word , 0 ,- 1 ) ; $ lst2 = substr ( $ word ,- 2 ) ;$ rest2 = substr ( $ word , 0 ,- 2 ) ; $ lst3 = substr ( $ word ,- 3 ) ;$ rest3 = substr ( $ word , 0 ,- 3 ) ; if ( $ lst3 == " нки " ) $ word = $ rest3 . " нков " ; elseif ( $ lst2 == " ки " || $ lst2 == " ка " ) $ word = $ rest2 . " ок " ; elseif ( $ lst2 == " ры " ) $ word = $ rest2 . " р " ; elseif ( $ lst2 == " ия " ) $ word = $ rest2 . " ий " ; elseif ( $ lst2 == " рь " ) $ word = $ rest2 . " рей " ; elseif ( $ lst1 == " ы " ) $ word = $ rest1 . " ов " ; return $ word ; } Взглянув на это, стало как-то печально, особенно если учитывать что примеров может быть намного больше, взял и автоматизировал/оптимизировал: function make_multiple ( $ word ) { $ word = trim ( $ word ) ; // массив возможных вариантов $ ends = array ( " нки " => " нков " , " ки " => " ок " , " ка " => " ок " , " ры " => " р " , " ия " => " ий " , " рь " => " рей " , " ы " => " ов " ) ; // ищем самое большое окончание, то есть его длину $ itrs = max ( array_map ( ' strlen ' , array_keys ( $ ends ) ) ) ; $ poly = array () ; // строим массив этих окончаний, и слов без них for ( $ i = $ itrs ; $ i > 0 ; $ i -- ) { // в таком виде что бы избежать циклов в цикле $ poly [ $ i ] = array ( substr ( $ word ,-$ i ) , substr ( $ word , 0 ,-$ i ) ) ; } // строим нужно слово, когда найдём сопадение foreach ( $ ends as $ what => $ to ) { if ( $ poly [ strlen ( $ what )][ 0 ] == $ what ) { return $ poly [ strlen ( $ what )][ 1 ] .$ to ; } } return $ word ; } Вот так родился такой монстрик ;) А сами окончания наверное правильнее будет передавать в функцию, хотя если они останутся в ней, база нарастёт быстрее. 2 комментария Теги: optimizing , php 10 марта 2011, 13:49 22 дня назад Мускул апдейт, ORDER BY RAND() не работает / not work После обновления мускула, просто перестал работать такой запрос, все время одно и тоже число :) SELECT * FROM your_table ORDER BY RAND () LIMIT 1 ; #Теперь нужно так: SELECT * FROM your_table ORDER BY RAND ( NOW () ) LIMIT 1 ; Вместо NOW() можно вставить и UNIX_TIMESTAMP(), но блин, может и не помочь, если часто обращаться. 2 комментария Теги: bugs , mysql 3 марта 2011, 16:36 29 дней назад Универсальный print_r function printr ( $ array ) { if ( ! is_array ( $ array ) ) return false ; $ args = func_get_args () ; if ( count ( $ args ) > 1 ) { foreach ( $ args as $ values ) printr ( $ values ) ; } else { echo "
" ; print_r ( $ array ) ; echo "
" ; } } printr ( $ arr1 ,$ arr2 ) ; Комментировать… Теги: php 28 февраля 2011, 17:01 более месяца назад UFT8 и PHP Казалось бы, как только начинаешь использовать мультибайт, тебя спасут теже функции, только с mb_ в начале, оказалось показалось %). В них желательно не забывать указывать какую именно кодировку вы используете mb_substr ( $ var , 0 , 99 , ' utf-8 ' ) Что-то типа такого, и да, мануалы в помощь. Для почитать на досуге, советую: Борьба с пхп и утф8 PS: нашёл у Тормоза в блоге. И к нему встречный вопрос, почему урл-заглушка в ДАОС не туда ведёт? :) Комментировать… Теги: php 30 января 2011, 22:53 более 2-х месяцев назад Firefox CSS3 render fail (scroll lag) На работе я разбаловался довольно мощным компом, потому многих вещей я просто не замечал. Этой весной моему домашнему бучеку будет 5 лет. Я им вполне доволен, 17» экран, 125фпс в ку3 (на настройках для игры) — но, фокс 3.6.13 очень лагает, когда на странице есть цсс3 градиентики и бокс-шадовс. Он просто реально умирает, и проц 100%. В остальных браузерах, вебкиты, говнооперы и ИЕ все ок, «ТАКИХ» лаг нет. Что печально, это никак не лечится, разве что реально мощным железом. Наверное не зря «эпл» выбрала такой путь, ведь их сафари без производительности очень лажовое говно, так же как айтюнс и куча-куча прочего. Частичной панацеей для бокс-шадов есть такая конструкция: .shadow { - moz-border-image: url("/imgs/shadow.png") 10 / 3 px ; } Где картинка выглядит вот-так , ну а градиенты картинками, чего очень не хочется. зы: и ещё, о цсс3 — для инпутов в ФФ до сих пор бордер-радиус не применяются, пока им не сменишь их бордер на любой другой. Комментировать… Теги: css3 , browsers mozilla firefox 27 января 2011, 16:22 более 2-х месяцев назад Обновления скриптов Заканчивая курить мануал по мускулу , и продолжая обновлять старые проекты новыми ЦМСками, всплыло пару багов, и добавилось фич — в итоге обновил вчерашний скрипт . Ещё переписал Регексп-тестер для PHP Так же апнул свою коллекцию утилиток Комментировать… Теги: mysql , php 27 января 2011, 12:29 более 2-х месяцев назад Mysql show create mysql> show create database AAA; +----------+-----------------------------------------------------------------------------------+ | Database | Create Database | +----------+-----------------------------------------------------------------------------------+ | AAA | CREATE DATABASE `AAA` /*!40100 DEFAULT CHARACTER SET cp1251 COLLATE cp1251_bin */ | +----------+-----------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> show create table charset_test2; +---------------+------------------------------------------------------------------------------+ | Table | Create Table | +---------------+------------------------------------------------------------------------------+ | charset_test2 | CREATE TABLE `charset_test2` ( `str` varchar(20) collate cp1251_bin default NULL, `str2` varchar(20) character set cp1251 default NULL ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_bin | +---------------+------------------------------------------------------------------------------+ 1 row in set (0.00 sec) Комментировать… Теги: mysql , шпаргалка 26 января 2011, 19:02 более 2-х месяцев назад PHP&MYSQL:Сравнение нескольких таблиц в БД и генерация скрипта обновления Полгодика назад я написал артикль на тему сравнение таблиц в двух БД (и больше) , основная идея которого была в том, что бы быстро сравнить 2 таблицы одинаковой системы с разными версиями и обновить старую БД. Делал всё руками, так как изменений было не много. А тут настал час, когда нужно проделать тоже, но руками это будет адски долго. Уделив 2 часа на курение мускул-синтаксиса, я на коленке написал, так сказать, версию 2.0 :) Полная генерация «апдейт ескуель«: альтер чендж альтер адд криейт тейбл адд индексес ремув индексес сам УИ импрувементс Посмотреть сорс Комментировать… Теги: mysql , php Предыдущие заметки Следующие заметки ← Ctrl → Нужно создать сайт на 1С-Битрикс(Bitrix)? Работает на движке e2 Selecta * All sources code was highlighted with w3club Highlighter . deer.org.ua © 2008—2011 Vitaliy Bogdanets Deerua