是否可以調用.exe(控制檯應用程序)並在我的網頁上實時獲取控制檯輸出?可能執行.exe並在html中獲取控制檯輸出?
我知道PHP的命令shell_exec()
函數。有了這個,我可以執行我的.exe。但如果控制檯的輸出將顯示爲HTML代碼,那將會很好。用這種方式,用戶總是知道應用程序的確切狀態。
如果這是可能的,你能給我任何關鍵字我怎麼可以搜索它?
編輯: 我要上傳一個視頻文件。
HTML:
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<input type="file" name="file" id="file"><br>
<input type="submit" name="uploadbtn" value="Upload Video">
這個文件去PHP腳本進行驗證:
PHP腳本:
if (in_array($extension, $allowedExts))
{
echo "<p>";
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"]/1024) . " kB<br>";
if (file_exists("../Videos/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"../Videos/" . $_FILES["file"]["name"]);
echo "Stored in: " . "Videos/" . $_FILES["file"]["name"];
$output = shell_exec("Extractvideo.exe $_FILES["file"]["name"]");
echo "<pre>$output</pre>";
}
?>
<p>File erfolgreich hochgeladen!</p>
<br/>
<a href="watch.php">Hier gehts zur Videoliste</a>
<?php
}
echo "</p>";
}
else
{
echo "Invalid file";
}
?>
我得到以下輸出:
上傳:ELL_PART_5_768k.wmv類型:video/x-ms-wmv尺寸:12964.57421875 kB存儲於:視頻/ ELL_PART_5_768k.wmv
文件erfolgreich hochgeladen!
我的「Videoextract.exe」確實轉換視頻。 它正在轉換它提供有關它的實際狀態的信息。
示例控制檯應用程序:
Video is going to be rendered
20%
40%
60%
80%
100%
Success!
這將是很好,如果用戶能得到的控制檯應用程序的輸出實時!
因爲我的控制檯應用程序有一個內置的錯誤處理程序。所以我可以在控制檯應用程序中返回任何錯誤,而不是用PHP重寫。
另外,如果用戶可以看到整個過程,那麼他知道它什麼時候結束了。
如果我使用
<?php
$output = shell_exec('Extractvideo.exe');
echo "<pre>$output</pre>";
?>
該腳本會等到它完成,然後返回最終的字符串。但那不是我的真實時間!
只需輸出並將其格式化爲HTML即可。有什麼問題?請參閱文檔中的示例:http://php.net/shell_exec –
輸出的格式是什麼?它是什麼樣子的? –
我的印象是,如果你正在嘗試像捕獲ANSI轉義代碼,全屏幕輸出或圖形輸出這樣的高級東西......你會明確提到它。請讓你自己熟悉shell執行函數的基本用法,並且當你的代碼有精確的問題時可以自由發佈。 –