PHP exec() 输出错误


PHP exec() wrong output

我正在使用jQuery执行AJAX请求,如下所示:

$.get({
          url: 'run_program.php',
          data: 'action=run&number=' + $('#number').val(),
          success: function (j) {
            alert(j);
          }

runprogram.php是这样的:

<?php
if(isset($_GET['action']) && !empty($_GET['action'])) {
    run($_GET['number']);
}
function run($number) {
    echo shell_exec('program.exe $number');
}
?>

我从服务器得到的响应始终为 0。顺便说一下,我在本地运行它,所以没有安全问题。该程序被简单地编码为对作为输入传入的数字进行平方。它在cmd中工作得很好。当我回显$number时,它正确地给出了我使用 jQuery 传入的值。我的代码中有什么问题?

问题出在你的行上

echo shell_exec('program.exe $number'); 

因为这实际上将调用程序.exe将"$number"作为文本作为值。您需要使用双引号,例如

echo shell_exec("program.exe $number");