Posted by Артур Геращенко on 23.03.2011
Простой парсер для разбора аргументов командной строки в php. Реализует паттерн «одиночка» Как с ним работать Вызываем из консоли скрипт: 1$ php script.php –cli=clientname –engine=google –opt -f arg
Posted by Артур Геращенко on 18.02.2011
Все началось с того, что мне не понравилось что я не могу жестко типизировать входные параметры в методы моих классов, а именно типизировать константы. Из-за отсутствия enum в php (сейчас я говорю о php 5) мы сталкиваемся с неудобными вещами – мы храним данные в массивах с комментариями «не изменять», «это не трогать», но это [...]
Posted by Артур Геращенко on 17.12.2010
Обнаружил любопытную вещь, точнее из-за неработоспособности скрипта напал на след непонятной для меня вещи: 1234567 $a = new stdClass(); echo sizeof($a)."\r\n"; // Вернет 0 $a = array(); echo sizeof($a)."\r\n"; // Вернет 1 Так что мой вам совет – аккуратнее с объектами!
Posted by Артур Геращенко on 13.10.2010
Здравствуйте, мои дорогие! =) 12345678910111213141516171819202122function baseNum_encode($val, $chars=’0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’) { // не можем использовать числа больше чем 2^31-1 = 2147483647 $base = strlen($chars); $str = »; do { $i = $val % $base; $str = $chars[$i] . $str; $val = ($val – $i) [...]
Posted by Артур Геращенко on 09.09.2010
1234567891011121314151617181920function base62_encode($val, $base=62, $chars=’0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’) { // can’t handle numbers larger than 2^31-1 = 2147483647 $str = »; do { $i = $val % $base; $str = $chars[$i] . $str; $val = ($val – $i) / $base; [...]
Posted by Артур Геращенко on 02.07.2010
1234567891011121314151617181920212223242526function close_dangling_tags($html){ //сначала берем все открытые теги preg_match_all("#<([a-z]+)( .*)?(?!/)>#iU",$html,$result); $openedtags=$result[1]; // после все закрытые preg_match_all("#</([a-z]+)>#iU",$html,$result); $closedtags=$result[1]; $len_opened = count($openedtags); # все теги закрыты if(count($closedtags) == $len_opened){ return $html; } $openedtags = array_reverse($openedtags); # close tags for($i=0;$i < $len_opened;$i++) { [...]
Posted by Артур Геращенко on 08.06.2010
Приведение типов в php делается просто: $newTypeVar = (type)$var; Ну или конкретные примеры: 12$array = (array)$object; $object = (object)$array; Ну, а теперь о багах, возникающих при приведении типов: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 // Объявляем массивчик $array = array(’11′ => ‘one’, 22 => ‘two’); print_r ($array); /* [...]