0
我有一個連接到telnet端口,並打開一些診斷和出口,並打開另一個telnet端口一個bash腳本來監視它的腳本工作正常,我可以用jQuery和Ajax執行,但我有麻煩不斷更新div與結果我不想繼續調用相同的命令時,重新加載PHP的div只是刷新結果的幫助和建議讚賞代碼如下jQuery的AJAX的bash的telnet更新DIV腳本不斷
bash腳本是非常基本的:
#!/bin/bash
{
sleep 2
echo diag gps info
sleep 2
echo exit
} | telnet 10.10.2.1 1700
telnet 10.10.2.1 1800
HTML/PHP文件:
<!DOCTYPE HTML >
<html>
<head>
<meta charset="UTF-8">
<title>diag stuff</title>
</head>
<body>
<button id="startGpsDiag" >Start gps diag</button>
<div id="results"></div>
</body>
<!-- <script langauge="JavaScript" src="{#javaScriptDir#}/jquery-min-1.8.js"> </script> -->
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
jQuery(document).ready(function() {
jQuery.ajaxSetup({cache: false});
jQuery("#startGpsDiag").click(function () {
// alert('true');
callGpsDiag();
});
function callGpsDiag(){
jQuery.ajax({
type: "POST",
url: "gpsDiag.php",
data: "execGpsDiag=1",
success: function(data) {
alert('success');
jQuery('#results').html(data);
setInterval(function() {
jQuery('#results').html(data);
},3000);
},
error: function() {
// alert('fail');
}
});
}
});
</script>
PHP邏輯文件:
if(isset($_POST['execGpsDiag'])) {
echo system('./gpsdiag.sh');
}
我可能要編輯bash的文件,並刪除最後一個telnet連接它是一個我要監視並將其與移動到PHP的邏輯,如果我們不最初設置診斷監視器端口
我也試着做echo system(telnet 10.10.1.2 1800)
並自行嘗試setinterval
只加載監控端口,但不能得到任何結果
,如果我跑gpsDiag.php
命令行用要麼只是echo system(telnet 10.10.1.2 1800)
或echo system('./gpsdiag.sh');
它的工作原理,並顯示結果屏幕。
它可以幫助它不斷調用頁面,但仍然無法從telnet端口輸出顯示我知道這可能也許我需要首先將輸出寫入文件? – user1930591 2013-02-15 19:04:40
我需要對輸出緩衝區做些什麼嗎? – user1930591 2013-02-15 19:09:38
考慮用'nc'替換'telnet'(你可能需要安裝「netcat」)。它以同樣的方式工作,但在非交互式使用方面,它更不模糊。 – 2013-02-15 19:17:16