我正在尝试使用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,(不是安全模式)。任何帮助表示赞赏。
答案 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 的绝对路径。