首页 > 后端开发 > php教程 > 如何在 PHP 中提取 JSONP 结果集?

如何在 PHP 中提取 JSONP 结果集?

Mary-Kate Olsen
发布: 2024-10-30 18:25:30
原创
941 人浏览过

How to Extract JSONP Resultset in PHP?

在 PHP 中提取 JSONP 结果集

简介

给定的任务涉及从返回 a 的 URL 检索和解析数据JSONP(带填充的 JSON)响应。 PHP 提供了有效处理此类响应的功能。

PHP 实现

JSONP 响应由包裹在 JSON 负载中的 JavaScript 代码组成。要提取实际的 JSON,请从响应的开头删除回调函数名称和括号。随后,可以利用 PHP 函数 json_decode() 将 JSON 解析为关联数组或对象。

用于 JSONP 解码的自定义函数

为了方便起见,可以定义名为 jsonp_decode() 的自定义函数:

<code class="php">function jsonp_decode($jsonp, $assoc = false) { // PHP 5.3 adds depth as third parameter to json_decode
    if($jsonp[0] !== '[' &amp;&amp; $jsonp[0] !== '{') { // we have JSONP
       $jsonp = substr($jsonp, strpos($jsonp, '('));
    }
    return json_decode(trim($jsonp,'();'), $assoc);
}</code>
登录后复制

用法

使用此自定义函数,可以按如下方式提取 JSONP 数据:

<code class="php">$data = jsonp_decode($response);</code>
登录后复制

示例

考虑提供的示例 JSONP 响应:

YAHOO.Finance.SymbolSuggest.ssCallback({"ResultSet":{"Query":"yahoo","Result":[{"symbol":"YHOO","name": "Yahoo! Inc.","exch": "NMS","type": "S","exchDisp":"NASDAQ","typeDisp":"Equity"}...]}})
登录后复制

使用 jsonp_decode() 函数:

<code class="php">$data = jsonp_decode($response);
$query = $data['ResultSet']['Query'];
foreach ($data['ResultSet']['Result'] as $result) {
    echo "Symbol: ".$result['symbol']." - Name: ".$result['name']." - Exchange: ".$result['exch']."\n";
}</code>
登录后复制

此代码将从 JSONP 响应中提取查询字符串以及符号、名称和交换信息。

以上是如何在 PHP 中提取 JSONP 结果集?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板