PHP での JSONP 結果セットの抽出: jsonp_decode() によるデコード
指定した URL のような URL から返されたデータにアクセスするには、次のようにします。 PHP の jsonp_decode() 関数を利用して JSONP 結果セットを抽出できます。 JSONP は、JavaScript 関数呼び出し内に JSON データを埋め込む形式です。
実装:
jsonp_decode() を使用する 関数: jsonp_decode() を使用して、抽出された JSON データを解析します。構文は次のとおりです:
<code class="php">$data = jsonp_decode($jsonString, $assoc = false);</code>
カスタム jsonp_decode() 関数:
次のカスタム jsonp_decode() 関数は JSONP 応答を処理できます。
<code class="php">function jsonp_decode($jsonp, $assoc = false) { if($jsonp[0] !== '[' && $jsonp[0] !== '{') { // we have JSONP $jsonp = substr($jsonp, strpos($jsonp, '(')); } return json_decode(trim($jsonp,'();'), $assoc); }</code>
使用法:
<code class="php">$yahooSS = "http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=yahoo&callback=YAHOO.Finance.SymbolSuggest.ssCallback"; $yss = fopen($yahooSS,"r"); $data = jsonp_decode($response); // Accessing the result foreach ($data->ResultSet->Result as $result) { echo $result->symbol . " - " . $result->name . "\n"; }</code>
デモ:
この例は、提案されたシンボルを取得して表示する方法を示します。 Yahoo Finance Symbol Suggest API からの名前:
<code class="php"><?php // Get JSONP response $yahooSS = "http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=yahoo&callback=YAHOO.Finance.SymbolSuggest.ssCallback"; $result = file_get_contents($yahooSS); // Decode JSONP $data = jsonp_decode($result); // Process results echo "<table>"; echo "<tr><th>Symbol</th><th>Name</th></tr>"; foreach ($data->ResultSet->Result as $result) { echo "<tr><td>" . $result->symbol . "</td><td>" . $result->name . "</td></tr>"; } echo "</table>"; ?></code>
以上がPHP で jsonp_decode() を使用して JSONP 結果セットを抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。