【发布时间】:2016-03-06 15:13:05
【问题描述】:
我正在编写一个 PHP 程序和一个 XAMPP 站点的一部分,该站点在我的机器的本地主机上运行。我希望该文件将它的两个字符串输入到我保存在计算机桌面上的 Java 程序中,然后将输出存储为字符串。我一直在尝试使用 shell_exec() 但我还没有让它工作。
有什么建议吗?
<?php
$artist = $_POST['artist'];
$songname = $_POST['songname'];
$artist = preg_replace('/\s+/', '', $artist);
$songname = preg_replace('/\s+/', '', $songname);
$artist=strtolower($artist);
$songname=strtolower($songname);
echo $artist;
echo $songname;
$output = shell_exec("/Users/ianterry/Desktop/CussCalc2/java CussCalc '$artist' '$songname'");
$output = shell_exec("/usr/bin/java -version");
echo $output;
?>
到目前为止,我在运行时得到的唯一输出是被 echo'd 的两个字符串。
【问题讨论】:
-
你知道 $output 被 java 版本覆盖了吗?
-
我确实意识到了这一点。我在测试前者后把它放进去,看看它是否会给出任何输出;也没有。
-
我对 PHP 了解不多,但是查看文档 php.net/manual/en/function.shell-exec.php 我看到 “使用此函数无法检测执行失败。访问时应使用 exec()程序退出代码是必需的。”。也许改用 exec 命令并从那里调试?
-
也许使用 proc_open 而不是 shell_exec 至少你会看到到底发生了什么