-1
我有一個PHP腳本,它需要一個表單的字段進行3次交替程序調用,其中第一個的輸出是第二個的輸入,依此類推。PHP - 調用外部程序並顯示進度
的問題是,我需要顯示每個程序調用,沒有什麼複雜的進步,我只是想展現3級不同的消息:
- 系統調用ñ等待。
- 系統調用N正在執行。
- 系統調用N完成。
我試圖用不同的PHP函數,如exec(),popen()或proc_open()來做到這一點,但與這些瀏覽器等待,直到每次調用完成。 整個系統調用時間不會超過5分鐘,可能是3或4,因此,在每次通話中可能會放置一個計時器(可能是1.5分鐘),如果通話時間更長,那麼可以殺死當前的系統調用,請跳過以下調用並顯示錯誤消息。
你有什麼想法嗎?也許Ajax和JavaScript的組合可以成爲解決方案。提前致謝。
<?php
/*
System Calls
This file is required in another main script
$projectPath and $projectName defined in the main script
*/
//$mainHome = getcwd();
$home = $projectPath . $projectName;
$temp = $home . "/temp/";
$calls = $temp . "CALLS";
$threads = array();
if(is_dir($temp)){
//chdir($temp);
$FILE = fopen($calls, "r");
while(($call = fgetcsv($FILE)) !== FALSE) {
//print_r($call);
$threads[] = implode(" ", $call);
}
}
//print_r($threads);
$descriptorspec = array(0 => array("pipe","r"),
1 => array("pipe","w"),
2 => array("file","./phpError.log","a")
);
for ($a=0; $a<count($threads); $a++) {
print $threads[$a] . "<br/><br/>";
exec($threads[$a])
//$res = proc_open($threads[$a], $descriptorspec, $pipes, $temp);
}
//chdir($mainHome);
?>
向我們展示您的腳本! – TryHarder
其實我只有一個腳本可以逐個執行每個調用。 – user1170251