在 PHP 中提取 JSONP 结果集:使用 jsonp_decode() 进行解码
要从您提供的 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>
DEMO:
此示例演示如何检索和显示建议的符号以及来自雅虎财经符号建议 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>
以上是如何使用 jsonp_decode() 在 PHP 中提取 JSONP 结果集?的详细内容。更多信息请关注PHP中文网其他相关文章!