单击按钮即可执行PHP执行Python脚本

时间:2018-07-23 14:21:32

标签: php python

我正在使用php来刷新一个python脚本的按钮。这样做的目的是当存在某个输入并按下按钮时,运行python脚本。如果没有用户输入,则$input_val有一个默认值,以防万一。我一直尝试测试此方法的方式是在我的python文件中,我有一行应输出到var/tmp/my_logfile.log,但在php页面中运行时没有返回任何日志。像其他所有堆栈文章一样,我已经看到它在命令提示符下有效。

我尝试使用的代码如下:

PHP:

if (isset($_POST['update']))
{
    exec('/usr/bin/python3 /var/www/python_test.py ".$input_val."');
}

HTML:

<form name="update" method="post" >
    <button name = "update" type="submit"> Update charts </button>
</form>

我使用了一些参考文献,但没有运气:

Execute Python script from Php

HTML form button to run PHP to execute Python script

https://www.raspberrypi.org/forums/viewtopic.php?t=105932

https://serverfault.com/questions/679198/executing-a-python-script-through-php-button

1 个答案:

答案 0 :(得分:2)

除非实际需要,否则不能将变量放在单引号字符串中。取而代之的是,分开并连接起来,或者使用双引号:

<?php exec('/usr/bin/python3 /var/www/python_test.py "' . $input_val . '"'); // note extra single quotes

或者:

<?php exec("/usr/bin/python3 /var/www/python_test.py \"$input_val\""); 

以上代码假定您实际上在终端中键入了双引号。

如果没有,那就像这样摆脱它们:

<?php exec('/usr/bin/python3 /var/www/python_test.py ' . $input_val );

或者:

<?php exec("/usr/bin/python3 /var/www/python_test.py $input_val");
相关问题