27 окт. 2009 г.

Преобразования JSON в PHP

Столкнулся с проблемой преобразования массива данных в PHP для передачи в формате JSON. В PHP есть ф-ция json_encode, но она работает только с данными в кодировке UTF-8, в результате чего пришлось кодировать данные при помощи самописной функции prepareDataForJson:

function prepareDataForJson(&$data)
{
if(is_array($data))
{
foreach(array_keys($data)as $k)
{
prepareDataForJson($data[$k]);
}
}else{
if(isset($data) && $data!='')
{
$data = htmlspecialchars($data);
$data = iconv('CP1251', 'UTF-8', $data);
}
}
}

и после этого передать в json_encode. Результат вывода был в виде \uXXXX, где ХХХХ - 4-х значный символ в UTF-16. Пришлось прогонять данные через самописную функцию unicode_decode :

function unicode_decode($str)
{
return preg_replace("/\\\u([0-9A-F]{4})/ie", "iconv('UTF-16', 'UTF-8',hex2str(\"$1\"))", $str);
}

function hex2str($hex)
{
return chr(hexdec($hex[2] . $hex[3])) . chr(hexdec($hex[0] . $hex[1]));
}


И только после данных преобразований получился требуемый JSON массив.

23 сент. 2009 г.

Ролловер на JS с помощью jQuery

Необходимо было прикрутить на сайт какой скрипт, который меняет картинки с определенной периодичностью. В качестве примера был дан сайт. Немного покурив тырнет наткнулся на плагин для jQuery. Данная статья лежит сдесь. Для моего случая я использовал 

21 сент. 2009 г.

Проблемы с kopete

В один прекрасный день отвалился kopete, аналогично произошло и с pidgin, писало ошибку "Невозможно подключиться к ICQ с учётной записью ххххххххх", в результате поисков наткнулся на сие решение

нужно было добавить(или подредактировать) в файле ~/.kde4/share/config/kopeterc следующие строки

[ICQVersion]
Build=6059
ClientId=ICQ6
ClientString=
Country=us
Lang=en
Major=6
Minor=0
Other=11
Point=0


Попадались вариации и с другими значениями билда и протокола, но заработало только с этими

Использовалась версия Kopete 0.60.3(KDE 4.1.3) "release 4.9"