如何使用 jsonp_decode() 在 PHP 中提取 JSONP 结果集?

Patricia Arquette
发布: 2024-10-30 11:10:53
原创
454 人浏览过

How to Extract JSONP Resultset in PHP with jsonp_decode()?

在 PHP 中提取 JSONP 结果集:使用 jsonp_decode() 进行解码

要从您提供的 URL 访问返回的数据,您需要可以利用 PHP 的 jsonp_decode() 函数来提取 JSONP 结果集。 JSONP 是一种在 JavaScript 函数调用中嵌入 JSON 数据的格式。

实现:

  1. 删除函数名称:删除JSON 数据周围的函数名称(和括号)。
  2. 使用 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] !== '[' &amp;&amp; $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&amp;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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!