2012-03-06 14 views
0

私はなぜvar_dumpが私がreferrer部分で何か問題をしているかもしれないときにこれが私にNULLを与えているのを理解できません。jsonとphpの問題

$url = "https://ajax.googleapis.com/ajax/services/feed/find?v=1.0&q=cricket"; 
    $ref = $_SERVER['HTTP_REFERER']; 
    //echo $ref; 
    // sendRequest 
    // note how referer is set manually 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_REFERER, $ref); 
    $body = curl_exec($ch); 
    curl_close($ch); 

    // now, process the JSON string 
    //utf8_encode($body); 
    $json = json_decode($body); 
    var_dump($json); 
+1

'$ body'変数には何がありますか? – hsz

+2

私のためにうまく動作します。 $ URLをブラウザに直接貼り付けてデータを取得していることを確認しましたか? –

+0

同じです。問題なく投稿されたとおりに正確に実行してください。実行中のPHPのバージョンは? –

答えて

0

PHPのJSONパーサーは非常に厳格です。 json_last_error()を使用して、デコードが失敗した理由を詳しく調べてください。

JSONがUTF-8としてエンコードされている場合は、バイトオーダーマーク(BOM)がないことを確認してください。 php.netで報告された少数の人々がいるため、パーサはBOMとうまく動作しません。

+0

私は以下のことをしましたが、何のエラーも返しませんでした。......今、私はなぜそれをデコードしないのですか? – Paradox

+0

最新のphpバージョンを使用していますが、json_last_error()との間で正しくエンコードされているので、エラーは発生しませんでした.....どうすればデコードするのですか? – Paradox

+0

私はPHP環境であなたのスクリプトを試してみましたが、修正なしで完全に動作しました。送信HTTPS接続をブロックするファイアウォールはありますか? – CodeZombie