php代码:
<?
exec( "/usr/local/bin/python2.5 test.py", $out );
echo("<pre>");
var_dump( $out );
echo("</pre>");
?>test.py的代码:
print "ok"输出:
array(0) {
}请问这是为啥?

解决方案 »

  1.   

    因为你的test.py没有返回值,只是打印出OK,没有返回值给php中的$out
      

  2.   

    我将test.py 做了如下修改def  myfunc():
      return "ok"myfunc()但$out 仍旧是
    array(0) {
    }
      

  3.   

    试试 shell_exec 或者system 
      

  4.   

    可能是php.ini里开了magic_quotes_gpc,safe_mode什么的自动给双引号转义了。
      

  5.   

    你的Web帐户,就是执行PHP的帐户有使用/usr/local/bin/python2.5的权限吗?
      

  6.   

    http账户指派usr/local/bin/* 的执行权限
    exec效果跟exec_shell是完全一样的 会自动读取控制台字符串到变量里
    你直接echo $out 就可以了 关键是权限 
    我以前读取peal的输出都是可以的 也是忘记加权限了 读不出来 后来就好了
      

  7.   

    不知道跟系统是否有关,我之前用过,exec只能执行脚本获取不到返回值,shell_exec在第一次用的时候可以获取返回值,后来更换了系统,相同的程序适应shell_exec却不能取得返回值,但是使用system函数可以!现在仍然是不解!关注一下!
      

  8.   

    是否可以这样:
    php代码:
    <?
    exec( "/usr/local/bin/python2.5 test.py", $out ,$return);
    echo("<pre>");
    var_dump( $out );
    var_dump( $return );
    echo("</pre>");
    ?>test.py的代码:
    print "ok"
    exit 1
    这样的话应该可以获取返回值“1”!
    ($out值通过exec应该是获取不到的,但是可以通过system("/usr/local/bin/python2.5 test.py", $out)来获取test.py中的print值,如果可以的话,楼主不妨一试)