Об Интернете в мобильниках
Эту запись набрал из своего коммуникатора.
Не знаю кому как - но мне пользоваться настольной машиной в разы удобнее. К тому же у меня в нем стоит Internet Explorer и подозреваю что это не самый удобный браузер для мобильника. Хотя сам факт того что можно писать в блог с мобильника уже говорит о многом. Например теперь можно оставлять записи в интернет стоя где нибудь в очереди...
Посоветуйте какой нибудь браузер под виндовс мобайл плиз.
Почему мне не нравится CodeIgniter
Сегодня потребовалось внести немного изменений в один проект на базе CodeIngniter - это же просто ужасть какой-то - у них нет переменной $_GET, совсем. Сначала я подумал что это бага, ан нет, оказывается, это системная функция, вот что они пишут на этот счет
GET data is simply disallowed by CodeIgniter since the system utilizes URI segments rather than traditional URL query strings (unless you have the query string option enabled in your config file). The global GET array is unset by the Input class during system initialization.
Т.е. пользуйтесь господа разработчики тем что дают и не пользуйтесь тем что есть. т.е. подход такой что CodeIgniter это не система в которой ПОТЕНЦИАЛЬНО можно сделать секюрно, это система в которой ПОТЕНЦИАЛЬНО нельзя сделать несекюрно.
Конечно подход хорош, но мне он не понравился, наверно я до него еще не дорос, или наоборот перерос...
Пришлось передавать данные не через GET а через параметор в адресе, но параметры через адресную строку передаются только буквенно-цифровые - а мне нужно было передать URL для редиректа, поначалу решил закодировать параметр как base64, но как оказалось что base64 оставляет кой какие не-буквенно-цифровые символы, например знаки == на конце текста, иногда. Тогда решил просто заменить все символы их числовыми представлениями в шестнадцатеричной системе - это прокатило.
Cпособ, скорее всего, годится только для строк содержащих только áглицкие буквы если есть неáглицкие может не сработать, но, если не сработает всегда же можно пропустить исходный текст через urlencode.
/** * Этим кодируем */ function an_encode($str){ $result = ''; for($i=0;$i<strlen($str);$i++){ $result .= dechex(ord($str[$i])); } return $result; } /** * Этим декодируем */ function an_decode($str){ $result = ''; for($i=0;$i<strlen($str)/2;$i++){ $result .= chr(hexdec($str[$i*2].$str[$i*2+1])); } return $result; }
Конечно, данные получаются в два раза длинее, но что делать, может кто знает лучший способ?
Получение POST данных в PHP скрипте
Бывают такие ситуации когда много лет делаешь что-то одним способом и вдруг понимаешь, что то, что ты много лет делал на самом деле может быть сделано гораздо проще. И ведь знал об этом, просто не догадывался сложить два плюс два чтобы сделать очевидные выводы.
Вот практическая задача - как из программы на PHP получить данные посланные методом POST. Казалось бы нет ничего проще - бери переменную $_POST и смотри что в ней. Но... Переменная $_POST полезна только в том случае если данные были посланы в виде пар имя+значение, т.е. например через HTML форму. Однако, в ряде практических задач приходится иметь дело не с HTML формами, например, если имеем дело с XML преданным непосредственно методом POST - тут стандартная переменная $_POST не подходит.
В PHP для того чтобы непосредственно получить POST данные есть переменная - $HTTP_RAW_POST_DATA - но, она определена только если в php.ini включена always_populate_raw_post_data а она по умолчанию выключена - конечно ее можно включить через .htaccess но только если php стоит как модуль Апача, а это как правило сделано не всегда.
Все мы знаем, что в CGI приложения POST данные передаются через стандартный поток ввода. Значит, если открыть стандартный поток ввода по его имени в PHP он называется input то можно прочитать его содержимое:
$r = file_get_contents("php://input"); //contents of POST buffer
Указанный метод, похоже, работает всегда - и для модуля Апача и для CGI и к настройкам php.ini он не чувствителен.
Создание анимированного GIF при помощи GD
Задался вопросом - можно ли используя стандартные средства PHP создать анимированный GIF? Оказывается можно и довольно просто. Для этого уже создан замечательный класс - GIFEncoder, который можно скачать с phpclasses.org - правда сайт требует регистрации.
Используя этот класс сделал быстренько простенький генератор ajax прелоадеров - вот таких:
Путем нехитрых настроек можно поменять размер, количество, цвет точек, размер самого прелоадера - вобщем в широких пределах можно все параметры изменять, вот только GUI к нему пока никакого, будет свободная минутка соорудю.
Исходник здесь