PHP计算和引导进度条

时间:2013-11-07 19:57:36

标签: php twitter-bootstrap

这是我的代码的一部分,用于计算现在在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>

1 个答案:

答案 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并且为了良好的度量而将类型转换为整数。