我正在构建一个网络应用程序,可以帮助人们提高某些单词的英语发音。该网站向用户显示一个句子,他/她说出该句子,然后按“结果”按钮。然后,Web 应用程序将两个文件发送到服务器:.txt 和 .wav 文件。
服务器(Linux (Ubuntu))应该获取这些文件,并进行一些分析和计算,然后将结果打印在名为“Results.txt”的文件中。然后,Web 应用程序(基于 php)应该从文件中读取结果并将其显示给用户。
问题是:我不确定 Web 应用程序和 Linux 服务器之间的通信最好是什么。至此,我已经成功在服务器上写入了.txt和.wav文件。我可以构建一个 Linux 脚本来获取这两个文件并进行所需的计算。我面临的是:我不知道如何正确有效地启动脚本。更重要的是:当脚本完成后,如何知道我可以安全地从“Results.txt”文件中读取结果?我需要一个同步工具或方法。
我问了一些人,他们告诉我在服务器端使用 java 应用程序,但我不知道该怎么做!
请问有什么帮助吗? :)
最佳答案
首先,您可以使用 PHP 来完成。使用 shell_exec() 方法,您可以运行 Linux 脚本命令并读取输出。例如:
$output = shell_exec("ls -l > outputFile.txt");
将当前目录列表写入名为outputFile.txt的文件
其次,您也可以使用 Java 执行相同的操作。使用:
Runtime.getRuntime().exec("ls -l").waitfor();
最终不使用 waitfor() 将导致 shell 脚本异步执行。您还可以使用
读取 Linux 脚本的 stdout 和 stderr 流Process.getInputStream()
和
Process.getErrorStream()
方法分别。希望有帮助。
关于java - 从 php web 与 Linux 脚本通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16135501/