这是我的代码的一部分,用于计算现在在Minecraft服务器上有多少玩家,并将该值以百分比形式返回到Bootstrap Progress栏,以便它可以完成它需要做的事情。
$playerson = $data[4];
$maxplayers = $data[5];
$percentage = ($playerson / $maxplayers) * 100;
echo $playerson;
echo $maxplayers;
?>
<div class="container">
<div class="progress">
<div class="progress-bar" role="progressbar" style="width: <?php echo $percentage; ?>%;">
</div>
</div>
</div>
现在我的问题是,$百分比一直返回0。但我不知道为什么。
这是我的完整档案:
<html>
<head>
<title>Bootstrap 101 Template</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
</head>
<BODY>
<?php
// your servers ip
$ip= 'hub.exclusivecraft.org';
// your servers port
$port = '25565';
我希望有人能找到解决方案。
function mc_status($host,$port) {
$fp = fsockopen($host,$port,$errno,$errstr,$timeout=10);
fputs($fp, "\xFE\x01");
$response = '';
$response .= fgets($fp);
fclose($fp);
$response = explode("\x00\x00", $response);
return $response;
}
$data = mc_status($ip,$port);
$playerson = $data[4];
$maxplayers = $data[5];
$percentage = ($playerson / $maxplayers) * 100;
echo $playerson;
echo $maxplayers;
?>
<div class="container">
<div class="progress">
<div class="progress-bar" role="progressbar" style="width: <?php echo $percentage; ?>%;">
</div>
</div>
</div>
<script src="http://code.jquery.com/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
答案 0 :(得分:0)
我不确定这些值是如何创建的。如果您有权访问返回的脚本 $ playerson = $ data [4]和$ maxplayers = $ data [5]然后你可以解决那里的问题。
如果没有尝试......
$playerson = (int)preg_replace( '/[^0-9]/', '', $data[4]);
$maxplayers = (int)preg_replace( '/[^0-9]/', '', $data[5]);
$percentage = floor($playerson / $maxplayers) * 100; // floor (round down) optional
基本上取代了“字符串”$ data [4]&amp;中的所有内容。带有'nothing'的$ data [5]所以只剩下数字0-9并且为了良好的度量而将类型转换为整数。