温馨提示×

php怎么将jsonp数据转换成json数据

PHP
小亿
104
2023-12-21 03:57:09
栏目: 编程语言

在PHP中,可以通过使用json_decode()函数将JSONP数据转换为JSON数据。JSONP数据是由回调函数包裹的JSON数据,回调函数名称由请求参数指定。

以下是将JSONP数据转换为JSON数据的示例代码:

<?php
// 获取JSONP数据
$jsonpData = $_GET['jsonpData'];

// 使用正则表达式提取JSON数据
$matches = [];
preg_match('/^(\w+)\((\{.+\})\);?$/', $jsonpData, $matches);

if (count($matches) === 3) {
  // 提取JSON数据
  $json = $matches[2];

  // 解码JSON数据
  $data = json_decode($json);

  if (json_last_error() === JSON_ERROR_NONE) {
    // JSON数据解码成功
    echo "JSON数据解码成功:<pre>";
    print_r($data);
    echo "</pre>";
  } else {
    // JSON数据解码失败
    echo "JSON数据解码失败";
  }
} else {
  // 无效的JSONP数据
  echo "无效的JSONP数据";
}
?>

在上述示例代码中,首先从GET请求参数中获取JSONP数据。然后,使用正则表达式提取JSON数据,并将其解码为PHP数组或对象。如果解码成功,则输出解码后的JSON数据。如果解码失败,则输出错误信息。

请注意,上述示例代码假设JSONP数据的格式为callbackFunctionName({...});,其中callbackFunctionName为回调函数名称,{...}为JSON数据。如有需要,你可以根据实际情况修改正则表达式来适应不同的JSONP数据格式。

0