使用浏览器中的shellexec将参数从php传递到python


passing arguments from php to python using shell_exec from browser

我有一个简单的php脚本,它将几个变量传递给并使用shell_exec命令运行python脚本。当我从shell运行这个php脚本时,它运行得很好。但是,当我从浏览器运行php脚本时,它会导致服务器崩溃。我在exec和shell_exec php函数中都尝试过这种方法。为什么我从shell还是浏览器运行脚本很重要?

记录在案,我可以成功地从浏览器运行其他命令,例如"tar-xcpvf-path.tar.gz"

以下是浏览器中出现问题的php脚本:

    <?php
    $inputs = array(    
    'location' => "Los Angeles",
    'date' => '11/01/2012',
    );
    $cmd = 'python simple.py '.$inputs['location'].' '.$inputs['date'];
    $results = shell_exec($cmd);
    echo $results;      
    ?>

任何帮助都将不胜感激。谢谢

如果没有错误日志,我不能确定,但看起来你没有引用你的参数。因此,您传递给shell_exec的实际命令是:

python simple.py Los Angeles 11/01/2012

你(大概)想要的是:

python simple.py "Los Angeles" "11/01/2012"

要做到这一点,你的$cmd行应该是这样的:

$cmd = 'python simple.py "'.$inputs['location'].'" "'.$inputs['date'].'"';