Python、PHP和Wordpress:XAMPP、SiteGound SSH和Wordpress输出之间的差异

Python、PHP和Wordpress:XAMPP、SiteGound SSH和Wordpress输出之间的差异,python,php,wordpress,Python,Php,Wordpress,在看到这个框架在多台机器上的不同输出后,我感到非常惊讶。我正在尝试从PHP文件中运行python脚本,并打印python文件的结果。最终,我想通过一个插件在wordpress网站上显示结果。我有以下文件: helloworld.py #!/usr/bin/env python print("hello world!") py_embed.php <?php exec("python helloworld.py", $output); var_dump($output); ?> 我

在看到这个框架在多台机器上的不同输出后,我感到非常惊讶。我正在尝试从PHP文件中运行python脚本,并打印python文件的结果。最终,我想通过一个插件在wordpress网站上显示结果。我有以下文件:

helloworld.py

#!/usr/bin/env python
print("hello world!")
py_embed.php

<?php
exec("python helloworld.py", $output);
var_dump($output);
?>
我还可以使用Apache服务器从XAMPP打开py_embed.php,方法是转到localhost//py_embed.php,然后再次看到预期的输出

最后,我可以在从SiteGround托管的web服务器运行py_embed.php时检查结果。我可以通过SSH连接到SiteGround服务器,再次看到预期的结果

现在,我可以通过创建一个新的php文件将php脚本集成到WordPress插件中:

php_python_together.php

<?php
/**
 * Plugin Name: php-python-together
 * Plugin URI: ....
 * ....
 */

add_action( 'wp_footer', 'func_php_py' );

function func_php_py() {
    exec("python helloworld.py", $output);
    var_dump($output);
}

?>

这说明调用helloworld.py没有成功,因为$output作为空数组返回。我确实在同一个文件夹位置有helloworld.py和php_python_.php。我是通过FTP做的。我该怎么解决这个问题呢?该框架可以在local、XAMPP和SiteGround的服务器上运行,但当我转换为wordpress插件时,它就崩溃了。是否有人对此问题有经验?

您的功能应该是:

<?php
/**
 * Plugin Name: php-python-together
 * Plugin URI: ....
 * ....
 */

function func_php_py() {
    echo shell_exec("python helloworld.py");
}

add_action( 'wp_footer', 'func_php_py' );
如果这仍然有效,那么也可以将完整路径添加到Python:

function func_php_py() {
    echo shell_exec("/usr/bin/python /var/safe/helloworld.py");
}

您的函数应该如下所示:

<?php
/**
 * Plugin Name: php-python-together
 * Plugin URI: ....
 * ....
 */

function func_php_py() {
    echo shell_exec("python helloworld.py");
}

add_action( 'wp_footer', 'func_php_py' );
如果这仍然有效,那么也可以将完整路径添加到Python:

function func_php_py() {
    echo shell_exec("/usr/bin/python /var/safe/helloworld.py");
}

我能弄明白。出于某种原因,我在wordpress中的工作目录不是php-python-together.php插件的位置。我希望工作目录是~/public_html/wp content/plugins/php python。这就是我的插件文件和helloworld.py所在的位置。wordpress默认的目录是~/public\uHTML。因此,通过更改我的php-python-together.php文件中的目录,它成功了

对我帮助很大的两个php函数是:

echo getcwd();
chdir();

祝大家好运

我能想出来。出于某种原因,我在wordpress中的工作目录不是php-python-together.php插件的位置。我希望工作目录是~/public_html/wp content/plugins/php python。这就是我的插件文件和helloworld.py所在的位置。wordpress默认的目录是~/public\uHTML。因此,通过更改我的php-python-together.php文件中的目录,它成功了

对我帮助很大的两个php函数是:

echo getcwd();
chdir();

祝大家好运

嘿,电子人,谢谢你看。那不是为了我。事实上,这并没有向wordpress的页脚返回任何内容。我需要有一个回声在那里,以便打印到页脚。例如,echo“这是我的页脚”;正确显示文本。然而,当我使用执行python的$output时,它仍然是一个空数组。还有其他想法吗?嘿,电子人,谢谢你看。那不是为了我。事实上,这并没有向wordpress的页脚返回任何内容。我需要有一个回声在那里,以便打印到页脚。例如,echo“这是我的页脚”;正确显示文本。然而,当我使用执行python的$output时,它仍然是一个空数组。还有其他想法吗?