在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數據格式。