Bonjour, 我試圖用PHP和phpseclib連接到路由器。放棄嘗試通過SSH與Ajax請求進行連接的PHP腳本?
<?php
function connect_ssh(){
set_time_limit(10);
ob_start();
register_shutdown_function('shutdown');
if(connection_aborded()){
die();
}
function shutdown(){
print ob_get_clean();
}
$res = array();
$a = new Net_SSH2($host);
$a->write("show time\r\n");
try{
$res[] = $a->read('\r\n');
$res[] = $a->read('\r\n');
$res[] = $a->read('#');
} catch(Exception $e)
{
ob_flush();
var_dump(compact('e','res'));
}
} return json_encode(compact('e','res'));?>
林調用使用jQuery這樣的功能:
$.ajax({
url:'myURL',
data: null,
type: 'POST',
dataType: 'json',
success: function(z){ console.log(z);}
});
我想阻止我的PHP腳本在demande因爲有時候, 「Net_SSH2 ::閱讀()」 失敗,如果該參數不在routeur答案中找到。 (即如果有語法錯誤)。
更多的時候,我不能失敗的請求後重新連接到我的Web服務器,我不得不等待很長一段時間,甚至重新啓動Apache的...
感謝您的幫助。 ..
嗡嗡聲,林不知道我明白了...我的問題是,我的PHP腳本永遠不會結束,如果$ a-> read()函數失敗... SSH會話仍然存在按ESCAPE鍵盤上,我必須重新啓動Apache才能重試... – Franquis
檢查編輯,我沒有測試,所以可能會出現錯誤。但它顯示了我的意思。 – AndyL