我试图从PHP执行shell命令与shell_exec()
:
$output = shell_exec('python test.py > test.txt');
当我从命令行运行python test.py > test.txt
时,它可以工作。当我尝试通过PHP做同样的事情时,没有创建test.txt
文件,命令似乎不运行。
shell_exec()
工作良好,当我不使用>
,例如
$output = shell_exec('python test.py');
echo $output;
我使用PHP 5.3.6,(不是在安全模式下)。
你做过理智测试吗?像这样
<?php
shell_exec('echo blah > /tmp/blah.txt;');
if(trim(file_get_contents('/tmp/blah.txt')) == 'blah')
echo 'It works' . PHP_EOL;
else
echo 'Something is wrong' . PHP_EOL;
同样,在最糟糕的情况下,一个简单的解决方案应该可以解决这个问题。
<?php
file_put_contents('test.txt', exec('python test.py'));
如果你需要缓冲大文件的内容,你可以得到w/fwrite等。
谁知道呢,你可能没有写到你想写的目录,试着把一个绝对路径放到test.txt。