Analitycs

Показаны сообщения с ярлыком debian. Показать все сообщения
Показаны сообщения с ярлыком debian. Показать все сообщения

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

Проблема в 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. "Чем дальше в лес - тем толще партизаны" (с) Ненавижу...

четверг, 4 августа 2011 г.

Как быстро определить в консоли - какая версия Linux установлена?

Если логинимся на какую-то машину и не знаем, что именно за дистрибутив Linux тут стоит - быстро посмотреть можно так

# cat /etc/issue
Debian GNU/Linux 6.0 \n \l

Или для debian

# cat /etc/debian_version
6.0

среда, 3 августа 2011 г.

Как поставить pip на Ubuntu/Debian?

Pip - гораздо лучшая альтернатива easy_install для установки пакетов Python. И он наиболее полно себя раскрывает с компаньоном virtualenv.

Устанавливаем pip и virtualenv для Ubuntu 10.10 Maverick и более свежих
$ sudo apt-get install python-pip python-dev build-essential
$ sudo pip install --upgrade pip
$ sudo pip install --upgrade virtualenv
На установке pip на Debian 6 Squeeze - ругнулся,
# pip install virtualenv
Traceback (most recent call last):
File "/usr/bin/pip", line 11, in
from pip.vcs import vcs, get_src_requirement, import_vcs_support
ImportError: cannot import name import_vcs_support
Upd: после некоторых действий по переустановке pip,  и выходу-логину заново - заработал. Причина - осталась неясна, к сожалению.

Для старых версий Ubuntu
Устанавливаем Easy Install
$ sudo apt-get install python-setuptools python-dev build-essential
Устанавливаем pip
$ sudo easy_install pip
Устанавливаем virtualenv
$ sudo pip install --upgrade virtualenv
По материалам: SaltyCrane 
В этом гаджете обнаружена ошибка