如何通过wordpress调用Python脚本?

时间:2018-06-21 07:43:13

标签: php wordpress

我正在为wordpress开发一个插件,用户可以在其中上传文件并对其进行分析。我已经准备好要分析的Python脚本,但是我不确定如何在传递参数(文件路径)时在PHP上运行它。最好有一个能够从Python脚本读取“打印”作为输出的解决方案。

到目前为止,我看起来像这样:

$handle = popen( __DIR__ . '/' . $data['file'], 'r' );
$read = '';

while ( ! feof( $handle ) )
{
    $read .= fread( $handle, 2096 );
}

pclose( $handle );

return $read;

但是“ popen”不允许我传递参数。最好的方法有什么线索吗?

3 个答案:

答案 0 :(得分:0)

您可以使用PHP exec或shell_exec()函数调用Python脚本,例如,您有一个python文件hello.py,然后可以使用以下代码调用该文件

    exec("python hello.py",$output);
    print_r($output); //display the output

答案 1 :(得分:0)

<?php # -*- coding: utf-8 -*-
/* Plugin Name: Python embedded */

add_shortcode( 'python', 'embed_python' );

function embed_python( $attributes )
{
    $data = shortcode_atts(
        [
            'file' => 'hello.py'
        ],
        $attributes
    );

    $handle = popen( __DIR__ . '/' . $data['file'], 'r' );
    $read = '';

    while ( ! feof( $handle ) )
    {
        $read .= fread( $handle, 2096 );
    }

    pclose( $handle );

    return $read;
}

答案 2 :(得分:0)

是的,您可以使用函数popen()来读写Python文件。此功能也适用于其他语言。

$handle = popen( __DIR__ . '/' . $file_name, 'r' );
$read = '';
while ( ! feof( $handle ) )
 {
   $read .= fread( $handle, 2096 );
 }
pclose( $handle );

Reference