2011-09-11 62 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

相關問題