java - 从 php web 与 Linux 脚本通信

标签 java php linux sockets communication

我正在构建一个网络应用程序,可以帮助人们提高某些单词的英语发音。该网站向用户显示一个句子,他/她说出该句子,然后按“结果”按钮。然后,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/

相关文章:

java - 如何对卡片进行排序。 (我的代码有错吗?)

javascript - php 在 Knack 数据库中创建记录不起作用

linux - 如何在禁用 SMP 支持的情况下运行 "invd"指令?

linux - 在 Linux 上模拟分布式系统的最轻量级方法

java - Spark2.2.1 不兼容 Jackson 版本 2.8.8

java - 计算具有两个变量的单个简单方程的解集的算法

java - 当我使用 BufferedReader 获取 HTML 时,我需要的部分不存在

php - 无法从数据库中读出图片,因为使用了外键

php - 使用正则表达式从 HTML 文本中提取文件名

linux - 将 Postgresql 更新到较新版本会破坏旧代码