使用PHP从Python脚本输出中显示多个字符串

时间:2013-11-03 19:12:54

标签: php python string

我目前正在尝试创建一个显示python文件输出的.php文件。这是我到目前为止(半工作)。

test.php的

<?php

    echo "Results from wordgame.py...";
    echo "</br>";
    $output = exec('python wordgame.py cat dog');
    echo $output;

;?>

这是test.php返回的内容......

Results from test.py...
dog

以下是我从命令行运行时获得的'wordgame.py cat dog'的输出:

Generated: 2454
Expanded: 83
Revisited: 0
Path:
        dog
        cog
        cag
        cat

我的问题是,如何让test.php打印出它在命令行打印的相同内容? wordgame.py没有“返回”任何东西,它只是在找到单词之间的路径后打印行。任何和所有的帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

而不是 exec ,请查看passthru。此函数没有返回值,但会将echo python脚本的整个输出直接发送到浏览器。

echo "Results from wordgame.py...<br/>";
passthru('python wordgame.py cat dog');

因为您的原始帖子中有<br/>,您可能需要转义python输出并将其包装在<pre/>标记中,以便为浏览器很好地格式化输出。最简单的方法是使用php输出缓冲。

echo "Results from wordgame.py...<br/>";
ob_start();
passthru('python wordgame.py cat dog');
echo "<pre>" . htmlspecialchars(ob_get_clean()) . "</pre>";

只要 wordgame 输出相对较短,这将有效。如果没有,您将需要在PHP端使用更复杂的解决方案proc_open,或确保您的python代码输出转义的HTML。