簡體   English   中英

通過帶有狀態更新的 web 鏈接運行 PHP 批處理腳本

[英]Running PHP batch scripts through web link with status updates

我在批處理文件中定義了一個進程,該文件依次運行 3 個 php 腳本,我想為該進程創建一個 web 前端。 當有人使用網絡表單上傳文件時,就會觸發該過程。

我希望能夠在批處理文件中的每個腳本運行后通知用戶一些有用的消息,但我不太確定 go 的正確方法是什么。

我正在考慮 javascript,它按順序向 3 個 php 文件發送請求,其中 php 腳本在執行時回顯狀態消息。 但我寧願讓這三個文件在客戶端的單個觸發器中執行,而不是讓 javascript 分別調用這三個腳本。

關於 go 的任何想法是什么?

將消息存儲在數據庫或其他集中式存儲系統中。 使用 ajax 調用來提取最新消息。

您可以創建一個運行 3 php 腳本並回顯其輸出的 php 文件。 通過通過 AJAX(我建議jQuery 框架)執行服務器端請求,可以收集輸出,客戶端腳本可以處理並向用戶顯示結果。

向服務器上的 php 文件發送 ajax 調用。 您沒有指定 php 腳本是如何運行的,但我要做的是包含其他其他 php 文件(這些文件將具有處理它們應該執行的任何操作的函數),然后從主文件中調用這些函數。 這些函數應該返回某種可以在數組中收集的成功/錯誤消息。 所以是這樣的:

$response[] = firstFileProcessing(); //your function names should be better
$response[] = secondFileProcessing();
$response[] = thirdFileProcessing();

當所有腳本完成處理后,執行:

echo json_encode(array("responses" => $response));

然后回到你的成功 function 調用 ajax ,你會做:

var res = jQuery.parseJSON(response_from_server); 
//or if you told ajax to expect a json response, 
//response_from_server would automatically be an object based on the json sent

並逐一查看 php 所說的內容。

alert(res.responses[0]); //the first file said this

或者,您可以使來自 php 的 $response 更加詳細 - 它自己的數組,$response['success'] = TRUE, $response['msg'] = "Worked,"。 等 - 任何數量的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM