PHP shell_exec不接受'>'参数

时间:2011-12-02 19:18:43

标签: php shell

我正在尝试使用shell_exec()执行来自PHP的shell命令:

$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,(不是安全模式)。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

你做过健全测试吗?像这样的东西

<?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 et al.

谁知道,您可能没有写入您想要的目录,请尝试输入 test.txt 的绝对路径。