PHP 如果调用API内容到网页显示

新手上路,请多包涵

调用接口:https://api.mcsrvstat.us/quer...:19132

返回数据

{"HostName":"DCPE","GameType":"SMP","GameName":"MINECRAFTPE","Version":"v1.8.0","Plugins":["BlockPets 1.1.2","iProtector 1.0.0-BETA","CombatLogger 0.0.5","VoteReward 3.0.3","ASR 2.0.3","DevTools 1.13.0","PiggyCrates 1.2.0","TeaSpoon 1.0.1","GrabBag 2.4.3","Broadcaster 1.5","ApiUpdaterDP 3.1.0","Hats 1","OreAboveEndStone 1.0.0","TierLoot 1.0.0","ForceFac 1.0.0","Functions 1.2.1","SetBlock 1.0.0","Limiter 0.0.1","ClearLagg 1.1.0","BuycraftPM 0.5.1","DimensionsPE 1.0.0","HotBlock 1.1.3","JoinCommands 1.5","VanillaEnchantments 3.1.0_ALPHA","CustomSetting 1.0.1","PurePerms 1.4.2","WarpUI 1.1","AdvancedFly 1.8.1","Overvoltage 1.0.0","BlockCmdPE 1.0.0","PvPLevels 1.0","CreativeItemsPlus 1.0.2","CobaltGuns 1.2.0","EconomyAPI 5.7.2","CosmicAxe 1.0.0","CoinFlip 1.0.0","ManyWorlds 2.1.0","essentialsTP 1.2.1","PiggyCustomEnchants 1.2.0","CommandShop 1.0.0","FactionsPro 1.3.11-3","PureChat 1.4.11","PureChatExtras 0.1.0"],"Map":"Caleum","Players":0,"MaxPlayers":40,"HostIp":"0.0.0.0","HostPort":19132,"RawPlugins":"PocketMine-MP 3.5.2: BlockPets 1.1.2; iProtector 1.0.0-BETA; CombatLogger 0.0.5; VoteReward 3.0.3; ASR 2.0.3; DevTools 1.13.0; PiggyCrates 1.2.0; TeaSpoon 1.0.1; GrabBag 2.4.3; Broadcaster 1.5; ApiUpdaterDP 3.1.0; Hats 1; OreAboveEndStone 1.0.0; TierLoot 1.0.0; ForceFac 1.0.0; Functions 1.2.1; SetBlock 1.0.0; Limiter 0.0.1; ClearLagg 1.1.0; BuycraftPM 0.5.1; DimensionsPE 1.0.0; HotBlock 1.1.3; JoinCommands 1.5; VanillaEnchantments 3.1.0_ALPHA; CustomSetting 1.0.1; PurePerms 1.4.2; WarpUI 1.1; AdvancedFly 1.8.1; Overvoltage 1.0.0; BlockCmdPE 1.0.0; PvPLevels 1.0; CreativeItemsPlus 1.0.2; CobaltGuns 1.2.0; EconomyAPI 5.7.2; CosmicAxe 1.0.0; CoinFlip 1.0.0; ManyWorlds 2.1.0; essentialsTP 1.2.1; PiggyCustomEnchants 1.2.0; CommandShop 1.0.0; FactionsPro 1.3.11-3; PureChat 1.4.11; PureChatExtras 0.1.0","Software":"PocketMine-MP 3.5.2","PlayerList":false}

我想获取某些数据到PHP网页上显示,需要怎么操作了?谢谢大神了

阅读 3.8k
2 个回答
// 获取到数据
$str = '{"HostName":"DCPE","GameType":"SMP","GameName":"MINECRAFTPE","Version":"v1.8.0","Plugins":["BlockPets 1.1.2","iProtector 1.0.0-BETA","CombatLogger 0.0.5","VoteReward 3.0.3","ASR 2.0.3","DevTools 1.13.0","PiggyCrates 1.2.0","TeaSpoon 1.0.1","GrabBag 2.4.3","Broadcaster 1.5","ApiUpdaterDP 3.1.0","Hats 1","OreAboveEndStone 1.0.0","TierLoot 1.0.0","ForceFac 1.0.0","Functions 1.2.1","SetBlock 1.0.0","Limiter 0.0.1","ClearLagg 1.1.0","BuycraftPM 0.5.1","DimensionsPE 1.0.0","HotBlock 1.1.3","JoinCommands 1.5","VanillaEnchantments 3.1.0_ALPHA","CustomSetting 1.0.1","PurePerms 1.4.2","WarpUI 1.1","AdvancedFly 1.8.1","Overvoltage 1.0.0","BlockCmdPE 1.0.0","PvPLevels 1.0","CreativeItemsPlus 1.0.2","CobaltGuns 1.2.0","EconomyAPI 5.7.2","CosmicAxe 1.0.0","CoinFlip 1.0.0","ManyWorlds 2.1.0","essentialsTP 1.2.1","PiggyCustomEnchants 1.2.0","CommandShop 1.0.0","FactionsPro 1.3.11-3","PureChat 1.4.11","PureChatExtras 0.1.0"],"Map":"Caleum","Players":0,"MaxPlayers":40,"HostIp":"0.0.0.0","HostPort":19132,"RawPlugins":"PocketMine-MP 3.5.2: BlockPets 1.1.2; iProtector 1.0.0-BETA; CombatLogger 0.0.5; VoteReward 3.0.3; ASR 2.0.3; DevTools 1.13.0; PiggyCrates 1.2.0; TeaSpoon 1.0.1; GrabBag 2.4.3; Broadcaster 1.5; ApiUpdaterDP 3.1.0; Hats 1; OreAboveEndStone 1.0.0; TierLoot 1.0.0; ForceFac 1.0.0; Functions 1.2.1; SetBlock 1.0.0; Limiter 0.0.1; ClearLagg 1.1.0; BuycraftPM 0.5.1; DimensionsPE 1.0.0; HotBlock 1.1.3; JoinCommands 1.5; VanillaEnchantments 3.1.0_ALPHA; CustomSetting 1.0.1; PurePerms 1.4.2; WarpUI 1.1; AdvancedFly 1.8.1; Overvoltage 1.0.0; BlockCmdPE 1.0.0; PvPLevels 1.0; CreativeItemsPlus 1.0.2; CobaltGuns 1.2.0; EconomyAPI 5.7.2; CosmicAxe 1.0.0; CoinFlip 1.0.0; ManyWorlds 2.1.0; essentialsTP 1.2.1; PiggyCustomEnchants 1.2.0; CommandShop 1.0.0; FactionsPro 1.3.11-3; PureChat 1.4.11; PureChatExtras 0.1.0","Software":"PocketMine-MP 3.5.2","PlayerList":false}';
// 字符串转为数组
$arr = json_decode($str,true);
// 输出数组
var_dump($arr);

需要多详细的操作,不知道 PHP 网页用的是什么框架,@qiaoweizhen 其实说了获取到数据后怎么转为数组,我给出一些可能用到的代码,看看能不能用上

获取数据

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.mcsrvstat.us/query/DCPE-Play.cf:19132",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET"
));

$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);

if ($err) {
  // 错误处理
  // echo "cURL Error #:" . $err;
} else {
    $response = json_decode($response, true);
}

数据赋值(这个根据不同的框架有不同的处理, 这里以 thinkphp 举例)

$this->assign("response", $response);

页面处理(有模板引擎)

<!-- 输出 HostName 数据 -->
<div><?php echo $response['HostName']; ?></div>

<!-- 遍历 Plugins 数据 -->
<?php foreach ($response['Plugins'] as $value) { ?>
    <?php echo $value; ?>
<?php } ?>

页面处理(直接 echo html代码形式 )

// 输出 HostName 数据
echo "<div>{$response['HostName']}</div>";

// 遍历 Plugins 数据
foreach ($response['Plugins'] as $value) {
    echo "<li>{$value}</li>";
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题