我正在使用我编写的包装类运行第三方脚本,该类调用shell_exec()
和管道进入我稍后使用 php 代码解析的文件。我应该提到这是有效的,但我正在尝试增强功能,遇到了一个我没有想到的用例。
如何最好地管理 shell_exec() 的超时?我正在考虑将它包装在 atry() catch()
但我不确定如何最好地处理时间组件。
我在这里阅读了一些与 and 相关的问题,shell_exec()
似乎exec()
通过将输出参数传递给exec()
您可以获得返回,但这确实依赖于以返回状态完成的脚本。另外,在我的迷你测试页面中,我似乎无法让它返回任何输出!
我想到的另一个选项是使用模式对话框,在脚本工作时使用 ajax 样式微调器,并在 javascript 中设置手动超时。然后给用户一个关于它失败/超时和结束的模型对话框消息。
此用例是否有任何可接受的方法?
我的迷你测试包括以下内容,
public $e_return = array();
public $e_status = '';
// Paths are absolute from /
public function execCheck($domain){
exec($this->ssl_check_path." -s ".$domain." -p 443 > ".$this->folder.$this->filename." 2>&1 &", &$this->e_return, &$this->e_status);
}
// Returns
Array
(
)
0
使用这个问题作为参考, Can't execute PHP script using PHP exec