exec()和passthru()php正在执行

时间:2013-04-11 01:56:25

标签: php exec passthru

我尝试用PHP执行python脚本但是没有结果:我试过

$tmp = passthru("C:\\Python27\\python.exe C:\\Python27\\script.py C:\\Python27\\file.pdf",$output);
print($output)

结果:“1”

虽然

$tmp = exec("C:\\Python27\\python.exe C:\\Python27\\script.py C:\\Python27\\file.pdf",$output);

返回Array()

我除了返回一个字符串,有什么建议吗? 我在我的php.ini文件中验证了

  safe_mode = Off

谢谢!

3 个答案:

答案 0 :(得分:1)

exec()的文档说$output参数是一个将用每一行填充的数组。如果要将其转换为单个字符串,请使用:

$output_string = implode("\n", $output);

答案 1 :(得分:0)

这应该适合你:

ob_start();

passthru("C:\\Python27\\python.exe C:\\Python27\\script.py C:\\Python27\\file.pdf");

$filedata = ob_get_clean();

echo $filedata;

答案 2 :(得分:0)

默认情况下,python缓冲输出。将环境变量PYTHONUNBUFFERED设置为非空字符串,或使用-u运行python。