ページをロードし、ページに ajax リクエストを送信して、ページが開いているかどうかを確認します。
$.getJSON('checkstatus.php', {
port: 8070
}, function (data) {
if (data.status === 'on') {
$('#img').attr('src', 'on.png');
} else {
$('#img').attr('src', 'off.png');
}
});
<?php
......code.....
header('content-type: application/json');
echo json_encode(array('status'=>get_port_status($_GET['port'])));
編集 :
//checkstatus.php
<?php
$host = $_GET['host'];
$ports = array(PORT 1, PORT 2, PORT 3, PORT 4, PORT 5, PORT 6, PORT 7, PORT 8, PORT 9);
$status = array();
foreach($ports as $port) {
$connection = @fsockopen($host, $port);
if (is_resource($connection)) {
$[$port] = 'on';
fclose($connection);
} else {
$[$port] = 'off';
}
}
header('content-type: application/json');
echo json_encode($status);
?>
///status.html
<table id="portStatus">
<tbody></tbody>
</table>
<script>
$(function () {
var table = $('#portStatus tbody');
var hosts = ['host1.com', 'host2.com'];
for (var i = 0; i < hosts.length; ++i) {
var host = hosts[i];
$.getJSON('checkstatus.php', {
host: host
}, function (data) {
var tr = $('<tr/>');
tr.append($('td').html(host)); //this appends the hostname to the td;
for (var port in data) {
tr.append($('<td><img src="' + (data[port] === 'on' ? 'accept.png' : 'error.png') + '"></td>');
}
table.append(tr);
});
}
});
</script>
これで基本的なアイデアが得られるはずです。試してみて、修正してください。なお、javascript 部分は jQuery を使用しています。