通过具有状态更新的Web链接运行PHP批处理脚本

问题描述

|| 我在一个批处理文件中定义了一个进程,该文件运行3个PHP脚本,依次运行一个一个,并且我想为该进程创建一个Web前端。当有人使用网络表单上传文件时,将触发该过程。 我希望能够在批处理文件中的每个脚本运行后通过一些有用的消息来通知用户,但是我不太确定正确的方法是什么。 我正在考虑按顺序将请求发送到3个PHP文件的javascript,而PHP脚本会在执行状态消息时回显状态消息。但是,我宁愿从客户端在一次触发中执行三个文件,而不是让javascript分别调用这三个脚本。 有什么想法是最好的方法吗?     

解决方法

        您可以创建一个运行3个php脚本并回显其输出的php文件。通过执行通过AJAX(我建议使用jQuery框架)的服务器端请求,可以收集输出,并且客户端脚本可以处理并将结果显示给用户。     ,        将消息存储在数据库或其他集中式存储系统中。使用ajax调用提取最新消息。     ,        将ajax调用发送到服务器上的php文件。您没有指定php脚本的运行方式,但是我要做的是包括其他其他php文件(该文件具有处理它们应该执行的功能的功能),然后从主文件中调用这些功能。这些函数应返回可以在数组中收集的某种成功/错误消息。所以像这样:
$response[] = firstFileProcessing(); //your function names should be better
$response[] = secondFileProcessing();
$response[] = thirdFileProcessing();
完成所有脚本的处理后,请执行以下操作:
echo json_encode(array(\"responses\" => $response));
然后返回用于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!\”,依此类推-任意数量的数据。