基本上我使用的是 Bootstrap 3 RC2。我希望能够通过 PHP ping 服务器。我在谷歌上找到了这个脚本。
<?php
// Script by Akensai
if (!$socket = @fsockopen("YOUR.IP.HERE", 80, $errno, $errstr, 30))
{
echo "<font color='red'><strong>Offline!</strong></font>";
}
else
{
echo "<font color='green'><strong>Online!/strong></font>";
fclose($socket);
}
?>
我知道我可以将在线/离线回显更改为 Bootstrap 元素,例如 100% 进度条。
我想知道的是在 ping 服务器时如何让进度条从 0%-100% 移动。默认情况下,加载时进度条为蓝色,成功则变为绿色,失败则变为红色。 Bootstrap 通过简单地更改进度条 DIV 中的类来提供这些选项。
我知道这可能看起来不切实际,因为 ping 通常非常快,但我仍然想知道如何使用该功能以供将来引用。
有什么建议吗?
最佳答案
我将向您演示它是如何仅使用 jquery 完成的,我并没有太多地使用 bootstrap。
首先让我们假设我们有与您所做的类似的服务器代码。
$json = array();
if ($socket = fsockopen($_POST['ip'], 80, $errno, $errstr, 30)) {
$json = array('status' => 1);
fclose($socket);
} else {
$json = array('status' => 0);
}
header("Content-Type: application/json");
echo json_encode($json);
我们有一个服务器脚本,我们可以从客户端调用它,它会返回一个 json 响应。
在 html 端,我们有以下进度条。
<progress id='progress' max=100></progress>
然后我们有以下调用脚本的 jquery 代码
$(function () {
var options = {
url: '/script.php',
data: { ip : '127.0.0.1' },
type: 'POST',
dataType: 'json',
success: function (json) {
if (json.status == 1) $("#progress").val($('#progress').val() + 10);
}
};
$.ajax(options);
});
您需要使用 setInterval
或其他排队方法进行此 ajax 调用,以便在 ping 完成之前发出 ping 信号。
请注意,我从您的 fsockopen
中删除了 @
,这是一个不好的做法。 Read
关于php - Ping 服务器 + 进度条然后显示不同的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18306243/