Почему мой curl_init () просто умирает от меня? - PullRequest
0 голосов
/ 11 сентября 2011

В сети я нашел некоторый PHP-код, который предположительно поможет мне отправить текст с моего веб-сайта для публикации в твиттере.

Однако он просто умирает в части curl_init ().Браузер показывает пустую страницу (никакого HTML-содержимого вообще), и код перестает выполняться.

Вот код:

$url = 'http://twitter.com/statuses/update.xml';
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "$url");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "status=$body");
curl_setopt($curl_handle, CURLOPT_USERPWD, "$username:$password");
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);

Я тестирую в Ubuntu 11.04 с использованием NetBeans (даЯ знаю, что Netbeans предназначен для отладки Java, но он бесплатный и имеет очень хороший плагин для отладки PHP) с xdebug.Я тестирую на локальном сервере Apache 2.2.

Я попытался запустить отладчик, чтобы увидеть, где он выходит из строя, и отладчик также запускается, когда код попадает в часть curl_init ().Он просто выходит из отладчика, и браузер, как упоминалось выше, отображает только пустую страницу.

Есть ли что-то, что мне нужно настроить или сделать, чтобы curl_init () на самом деле делал вещи?

1 Ответ

2 голосов
/ 11 сентября 2011

Скорее всего, модуль curl не установлен или не включен в настройках PHP.Вы можете проверить это различными способами:

  • посмотрите, если extension_loaded('curl') (как упомянуто на этой странице, вы можете сделать то же самое из командной строки с php -mкоманда, но будьте осторожны - я вижу установки, где в командной строке PHP использовал другой php.ini, чем модуль Apache!)
  • посмотрите, если function_exists('curl_init')
  • проверьте вывод phpinfo()
  • inspect php.ini

Если curl не установлен (как это звучит), установите его и вашпроблема решена.

...