2011-09-11 64 views
0

我在'net上发现了一些PHP代码,它应该会帮助我从我的网站发送一些文本发布到twitter feed中。为什么我的curl_init()刚刚死在我身上?

但是,它只是死在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()实际上做的东西吗?

+0

你有没有检查卷曲是否可用? –

+0

然后试试这个$ curl_handle = curl_init()或死(“DIE !!”); –

+0

'php -m | grep curl'检查这个模块的最快方法,如果没有,只需'apt-get install php5-curl' – atma

回答

2

最有可能的curl模块没有在您的PHP设置中安装或启用。您可以通过多种方式检查此:

  • 看看extension_loaded('curl')(如在页面中提到,你可以在命令行做同样与php -m命令,但小心 - 我有看到安装在那里PHP命令行中使用不同的php.ini的Apache模块!)
  • 看看function_exists('curl_init')
  • 检查phpinfo()
  • 输出检查的php.ini

如果curl没有安装(听起来像),安装它,你的问题就解决了。

+0

哇...我觉得自己像一个白痴,我只是假定curl命令是标准PHP安装的一部分,我甚至没有考虑它是一个单独的模块,我安装了它,它工作。 '哦!谢谢你让我平静下来! – Questioner

相关问题