Analitycs

пятница, 16 сентября 2011 г.

Как исправить Fatal error: Cannot use object of type stdClass as array (PHP+JSON)

Всем хороша в пятом php функция json_decode, только по умолчанию декодирует JSON строку в объект класса stdClass, с которым нельзя работать как с массивом.

Ибо конструкция

$json = json_decode($string);
echo $json['result'];

приведет к ошибке
Fatal error: Cannot use object of type stdClass as array

Правится это добавлением второго параметра
$json = json_decode($string, true);
echo $json['result'];

четверг, 15 сентября 2011 г.

Habrahabr осеннее обострение 2011 - часть 2

Продолжение цикла фейеричных статей цикла "Осеннее обострение" на хабре. Дополнение к части 1.

Вот тут человек всерьез предлагает отдавать весь контент для Apache через PHP с зипованием всего же - тем PHP. Причем - "исследует" и строит графики...

"Мы не ищем легких путей. Стоя... и в раскачивающемся гамаке - наш выбор" (с)

Как исправить ошибку Python datetime.datetime() is not JSON serializable?

Немного о сериализации через simplejson даты/времени, полученной из MySQL

При попытке сдампить результат из fetchall - чтобы отдать данные наружу во фронтендовский в Javascript в стиле

            sql  ='SELECT * FROM xxx WHERE id=%d'                                                          
            self._query(sql % id)
            data = self._cursor.fetchall()

получаем Exception

datetime.datetime(2011, 9, 14, 10, 18, 57) is not JSON serializable

Исправляется дополнительным форматом через лямбда-функцию

            dthandler = lambda obj: obj.isoformat() if isinstance(obj, datetime) else None
            response = json.dumps(data, ensure_ascii=False, default=dthandler)
Найдено, как водится - на StackOverflow

вторник, 13 сентября 2011 г.

Валюта в Яндекс-Директ и Google Adwords

Что самое интересное - в Яндекс-Директе - расчетная единица - у.е.



А вот в Google Adwords - рубли

"Странненько... непонятненько...." (с)

понедельник, 12 сентября 2011 г.

Как определить какая версия PHP/eAccelerator используется?

$ php -v


PHP 5.1.6 (cli) (built: Mar 31 2010 02:39:17)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
    with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator

пятница, 9 сентября 2011 г.

Что не нужно в Python?


  • быстродействие
  • многопоточность 
  • компилятор
  • проверка типов
  • приватные методы
  • паттерн-матчинг
  • хвостовая рекурсия
  • switch-case
  • карринг
  • ленивость
  • алгебраические типы
  • округление результатов
  • соглашение об именовании 

Python - Да все это не нужно!

Я как бы НЕМНОГО переживаю из-за урезанной многопоточности но терпеть - можно.
И признайтесь честно - все это вам ДЕЙСТВИТЕЛЬНО нужно? ;-)

Проблема в PHP+cURL+CURLOPT_POSTFIELDS - после обновления

Обновив PHP и cURL поймал забавность - старая конструкция, нормально работавшая несколько месяцев

 $data = array(
  'id' => $id,
 );
 
 $ch = curl_init();

 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, implode('&', $data));

 $result = curl_exec($ch);

 curl_close($ch);
  
 return json_decode($result);

перестала отправлять в POST данные.

Покурив маны, нашел ошибку в коде - не нужно implode на массив

 $data = array(
  'id' => $id,
 );
 
 $ch = curl_init();

 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

 $result = curl_exec($ch);

 curl_close($ch);
  
 return json_decode($result);

Нет, ну понятно - как бы косяк, но тогда вопрос - ПОЧЕМУ ЭТО РАБОТАЛО?

P.S. "Чем дальше в лес - тем толще партизаны" (с) Ненавижу...