2011-07-26 11 views
0

PHP 5.1.4を実行しているサーバで以下のコードを実行しようとしていますが、何も返されていないようです。 print_r($ buffer);何も表示せず、var_dump($ buffer); "bool(false)"を返します。 PHP 5.2.xと5.3.2を実行しているサーバでも動作します。cURL on PHP 5.1.4 xmlフィードから何も返さない

error_reporting(E_ALL); 
$ch = curl_init("http://api.twitter.com/1/statuses/user_timeline/xxxxxxxxxxxxxx.xml"); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($ch, CURLOPT_POST, FALSE); 
$buffer = curl_exec($ch); 
curl_close($ch); 
print_r($buffer); 
var_dump($buffer); 
+0

ブラウザでそのURLを呼び出そうとしましたか? – mario

+0

curlopt_verboseをオンにして、完全な交換をどこかに記録します。 –

+0

あなたのコードはうまく動作します。 TwitterのURLをブラウザのウィンドウに入力して、それが何かを返すかどうかを確認してください。そうでない場合は、Twitterサービスがダウンしているか、URLが正しくありません。 – Tanoro

答えて

1

curl_execは、エラーが発生したときにブール値FALSEを返します。試してみてください:

$buffer = curl_exec($ch); 
if ($buffer === FALSE) { 
    die(curl_error($ch)); 
} 

エラーメッセージ/コードが吐き出されます。

+0

ありがとうございました、それは最終的にエラーコードを吐き出しました: "connect()timed out!"共有ホスト環境でこれを引き起こす可能性が最も高いのは何ですか? – tyro

+1

ファイアウォールの問題です。ポート80への発信接続が許可されていないか、twitterがサーバーのIPをブロックしています。シェルアクセス権を持っている場合は、api.twitter.com:80にtelnettingしてみてください。もしそうであれば、それはPHPの中にあるものです。 –

関連する問題