2011-12-23 15 views
2

Yahoo!からの在庫データを取得する小さなアプリケーションがあります私のローカルサーバーで正常に動作します。リモートサーバーにアップロードしたときに、データの返送が停止され、FFでセキュリティエラーが表示されました。「このWebサイトは所有権情報を提供しません」Yahoo!ファイナンスCSV APIとappid in PHP

は、それから私は私がやったアプリケーションIDウィッヒを申請しなければなりません実現が、まだ問題が残っている:

$appid = urlencode('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--'); // My App ID 
... 
$cHandle = curl_init(); 
curl_setopt($cHandle, CURLOPT_URL, 'http://download.finance.yahoo.com/d/quotes.csv?appid='.$appid.'&s='.$symbol.'&f='.$properties.'&e=.csv'); 
curl_setopt($cHandle, CURLOPT_RETURNTRANSFER, true); 
$dataStr = curl_exec($cHandle); 
curl_close($cHandle); 
echo json_encode($dataStr); 

私のコードで何が間違って任意のアイデア?事前に感謝します

答えて

2

あなたのエラーはあなたのコードに接続されていません - FirefoxのエラーはSSL証明書に関連しています。あなたのコードがうまくいかない理由については、CURLのエラーチェックを追加して、何が生成されているかを確認してください:

$appid = urlencode('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--'); // My App ID 
... 
$cHandle = curl_init(); 
curl_setopt($cHandle, CURLOPT_URL, 'http://download.finance.yahoo.com/d/quotes.csv?appid='.$appid.'&s='.$symbol.'&f='.$properties.'&e=.csv'); 
curl_setopt($cHandle, CURLOPT_RETURNTRANSFER, true); 
... 

if(curl_exec($cHandle) === false) 
{ 
    echo 'Curl error: ' . curl_error($cHandle); 
} 
else 
{ 
    echo 'Operation completed without any errors'; 
} 

// Close handle 
curl_close($ch); 
+0

私の心を教えてくれてありがとうございます。コードが正常に動作していますが、問題はPHP 5.2.0以降のPHPコアの一部であるjson_encode()関数を使用しているようです。自分のローカルサーバにPHP 5.3.1がありますが、リモートサーバ上には5.1.6があります。 このPHPスクリプトはjQuery.ajax()を使用してリクエストされるため、PECL jsonパッケージをインストールするか、クライアント側のデータを処理する必要があります。 – hsands

関連する問題