我目前正在尝试创建一个显示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没有“返回”任何东西,它只是在找到单词之间的路径后打印行。任何和所有的帮助表示赞赏!
答案 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。