为什么我的curl_init()只是在死我?

时间:2011-09-11 13:24:43

标签: php apache twitter curl xdebug

我在'网上发现了一些PHP代码,据说可以帮助我从我的网站发送一些文字,以便在Twitter Feed中发布。

然而,它只是在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 个答案:

答案 0 :(得分:2)

很可能PHP安装程序中未安装或启用curl模块。您可以通过各种方式检查:

  • 查看是否extension_loaded('curl')(如该页面中所述,您可以使用php -m命令从命令行执行相同操作但小心 - 我看到了安装命令行PHP使用的是与Apache模块不同的php.ini!)
  • 查看是否function_exists('curl_init')
  • 检查phpinfo()
  • 的输出
  • 检查php.ini

如果未安装curl(听起来像),请安装它并解决您的问题。

相关问题