Записи с меткой "кодинг"
21 октября 2012
Получил заказ: нужно переделать отчет в готовом проекте Access. Вроде бы ничего сложного, но разработчик через параметры запуска проекта скрыл все менюшки и окно базы данных. Т.о. добраться до исходников невозможно.. почти. Немного погуглив нашел старый vbs-скрипт, качующий с сайта на сайт. Чтобы больше не искать, размещаю его здесь. Может пригодится еще.
13 апреля 2012
Мне нужно было разобраться, как именно работают функции curl_multi_*, представленные в PHP, почему так разнятся примеры не только в инете, но даже в справке PHP, что на самом деле происходит. CURL в PHP - это инкапсуляция настоящих функций библиотеки и еще некоторых других. При этом PHP использует не все функции libcurl, да и справка оставляет желать лучшего. Дабы не тыкать вслепую пимпы на клаве, перебирая варианты чужого кода, я решил постичь истинный смысл функций мульти-cURL и их параметров.
2 марта 2012
На работе возникла практическая задача: в логе прокси-сервера найди записи по фильтру. Лог - это обычный текстовый файл, так что наиболее простое программное решение - читать его построчно через pascal-функции Reset() и Readln(). Накидал программку, обкатал ее на копии файла, все прекрасно. Но такую прогу нельзя применить к текущему логу, т.к. функция Reset() блокирует файл на запись. Решением стало применение функций WinAPI для чтения файла. В итоге у меня получился аналог функций Паскаля для построчного чтения файла через WinAPI.
3 февраля 2012
Неудачное сочетание двух функций в Delphi 7 стоило мне нескольких часов жизни и много нервов. Зато мне удалось наконец поймать непредсказуемый PChar за хвост. Я и раньше сталкивался с необъяснимыми косяками, корнями идущими из бардака в pchar-переменных. Но сколько я об этом ни читал, сколько не копался - смысл не доходил. Теперь же я на 90% уверен, что точно знаю, чего ожидать от этого типа.
1 декабря 2011
При запуске программы получается ошибка "Приложение не было запущено, поскольку оно некорректно настроено". Очень полезная инфа, нефиг сказать :) Далее в этом же сообщении предлагается переустановить приложение. Итак, почему вдруг на чистой машине с только что установленной WinXP перестала работать любимая игра или программулина?
8 ноября 2011
Речь пойдет о библиотеке cURL (aka Client URL, libcurl) и ее использовании в PHP. Об этом уже много всего написано, поэтому я не буду проводить ликбез. Я расскажу о тех возможностях библиотеки, которые мне особенно доставляют. Не знаю, с какими благими намерениями создавал это чудо Daniel Stenberg, я использую ее в корыстных целях :)
19 сентября 2011
Есть как минимум два языка программирования, способных управлять cookie - PHP и Javascript. Есть множество браузеров, поддерживающих работу с печеньками. И есть проблема: удаление этих самых cookies может выполняться по-разному, в зависимости от языка/браузера. В этой статье я расскажу о своих изысканиях и кроссбраузерном подходе к манипуляциям с cookie.
29 августа 2011
Задача: удалить однострочные/многострочные комментарии, tab-отступы, пустые строки в js-скрипте. Так же нужно учесть, что в коде возможны экранированные back-slash и кавычки. После всего удалить переносы строк, чтобы получится весь код в одной строке. Разбить код на строки заданной длины.
Я не знаю, зачем последнее действие, но все "обфускаторы" так делают =-). Приведенный в статье скрипт я считаю упаковщиком, потому что он уменьшает вес конечного файла, а еще - мне так больше нравится :) Зачем все это нужно, я уже писал здесь. В двух словах: этот скрипт чистит js-файлы для загрузки на сервер.
26 августа 2011
Мои сайты сделаны в кодировке windows-1251, включая БД. Возникла необходимость получить файл в кодировке UTF-8 (собираю dump-файл базы). Как оказалось, преобразование из одной кодировки в другую - задача не тривиальная. В этой статье я попытаюсь разложить по полочкам, что к чему. Поле деятельности: Apache/2.2.15 (Win32) PHP/5.3.5. Во внимание беру только две кодировки, UTF-8 и Windows-1251 (aka cp1251), но многое из сказаного относится к преобразованиям в любых кодовых страницах.
19 августа 2011
Понесло меня по теме времени :). Не нашел, где разместить эту php-функцию, поэтому оформляю, как новую запись. Применение функции: передаем ей UTC-значение времени (timestamp) и нужный часовой пояс (число), получаем timestamp-время в указанном поясе с учетом летнего/зимнего времени.
19 августа 2011
Продолжаю тему "временных аномалий" в MySQL :) У меня с хостером разные часовые пояса: у него - GMT+3:00, а на моих сайтах GMT+8:00 (об этом на сайтах скрипты заботятся). Добавлять новости на сайт это не мешает, т.к. время пишется через mysql-функцию now() (текущее значение времени). Проблема появляется, когда мне нужна синхронизация записей с локальной копией БД. Делаю следующее: через phpMyAdmin экспортирую БД в файл - dump.sql, потом загружаю его на своем (местном) сервере MySQL. После такой синхронизации я получаю разницу во времени в 5 часов в каждой записи, где вообще есть время. Покопался и нашел причину! :)
18 августа 2011
Ничто не постоянно, даже время :) Особенно если речь идет о времени в PHP/MySQL. Когда я первый раз столкнулся с проблемой преобразования времени в PHP, я долго копался в мануалах и инете, но ни как не мог поймать суть. В итоге я все же нашел свою ошибку, все подробно для себя описал в txt-файле и забыл. Сейчас (спустя полтора года) опять возникли запарки, поднимаю текстовик.. и ничего не могу разобрать. Пришло время систематизировать записи про время (вот такой каламбурчик ;))
10 августа 2011
Упаковщик не в смысле архивации, а в смысле чистки css-файлов от пустых строк и комментариев. Слово "упаковщик" более удобно, чем "чистильщик" или т.п. Файл в итоге получается меньше без потери функциональности, поэтому так "громко" назвал :)
Проблема: на локальной копии сайта я храню файлы стилей с комментариями, а на сервере они должны быть чистыми. Перед первой загрузкой на сервер подчистил все. Теперь у меня две версии - с комментами и без них. При изменении в одной версии приходится повторять изменения в другой. Не удобно, напрягает и все такое :( Надо что-то делать.
5 августа 2011
Сама суть: сейчас (5 августа 2011) на офсайте PHP уже нет русской справки для скачивания. Недавно была здесь, и я успел ее забрать. Только она была в виде 10k html-файлов! Другой вариант, предлагаемый тогда на сайте - один оооочень большой html-файл. Вообщем я убил три дня на раскопки и разбирательства c форматом и наконец сваял справочник в chm-формате.
8 июля 2011
Сервер MySQL 5.1. Есть в его реализации замечательный оператор HANDLER. Он обеспечивает прямой доступ к интерфейсу обработчика таблиц MyISAM и InnoDB, минуя оптимизатор SQL. Следовательно, этот оператор работает быстрее, чем SELECT. Прежде чем показать, где проблема, коротко расскажу о синтакисе оператора. Далее копипаст справки по MySQL, ничего нового нет, причем я уберу из нее не относящее к дело.
5 июля 2011
В HTML некоторые символы имеют специальное значение и для сохранения своего значения должны быть преобразованы в HTML-сущности. Начиная с 3-ей версии в PHP для этого есть функция - htmlspecialchars(). Работает отлично, но проблема в том, что на преобразует весь html-документ. У меня возникла необходимость преобразования спец. символов только в части документа, а именно сохранение "внешнего вида" угловых скобок в примерах кода на html-страницах.
4 июля 2011
JavaScript меня иногда в тупик ставит. Причем не баги реализации, а количество свободы в нем. Кстати, багов в js я еще не видел.
Есть у меня некий код. Для примера упростил его максимально. Суть: есть строка, состоящая из цифр. Это - цифровые флаги. Функция разбирает строку на части и согласно полученных цифровых флагов готовит html-код таблицы для вставки на страницу. Каждая шестая и седьмая ячейка нужна другого цвета (практический пример - календарь в меню этого сайта). Еще замечу, что рабочий код этого календаря я сделал много раньше, только попроще. Теперь мне нужно было сделать его слегка круче.
26 мая 2011
Ситуация: грузится страница в браузер. По ссылке должен запуститься java-апплет, вместо этого получаю локаничное "Applet ... notinited" (орфография сохранена).
Окружение: WinXP, IE8, Java (JRE) 5.0 Update 14. Системный диск NTFS, пользователь и машина в домене.
Если бы все работало, то получил бы три подряд статуса: "Applet ... loaded", "Applet ... inited", "Applet ... started". Открываю консоль - ничего не понятно.. Беру лопату и начинаю копать.
17 мая 2011
Когда я задавался этим вопросом, я не нашел веских аргументов "за" или "против" возможности создавать и использовать классы в PHP. Мои сайты не настолько сложные, что бы организовывать в них большую классовую структуру, но для практики я все же создал пару классов особого назначения да так и оставил. И вот сегодня я нашел веский довод в пользу классовой организации.
16 мая 2011
Есть такой хак в CSS для IE 5.5-7 -
"//" (двойной слэш). Пример:
div.box{
position: fixed;
LEFT:0px; top:0px;
//position: absolute;
}