Drupal 7模块shell_exec问题

时间:2012-12-31 13:51:17

标签: php linux command-line drupal-7 shell-exec

我正在尝试在我的Linux服务器上创建一个包含XML输出的文件。

我使用以下代码行:

print "CHECKING: " . shell_exec("echo {$output} > tested.xml");

$ output变量包含格式良好的XML,我正在尝试动态创建tests.xml并填充它......但它不起作用。

修改为:

我刚尝试了以下方法:

print "CHECKING: " . shell_exec("echo {$output} > /var/www/mysite/sites/all/modules/my_module/output/tested.xml");

然后我给输出目录提供了777个权限,但我的XML文件仍然没有被创建。

1 个答案:

答案 0 :(得分:1)

提供的代码中唯一缺少的是shell_exec命令中指定的重定向中的绝对路径指定。假设Web服务器正在运行的OS用户(例如,'apache')具有对目标目录的写访问权,那么输出将被写入IO重定向中指定的文件。

例如,为了将XML文件的输出写入/ tmp,请使用以下代码:

print "CHECKING: " . shell_exec("echo {$output} > /tmp/tested.xml");

<强>修改为:

而不是提供我自己的答案,我决定建立你的好工作:-) 您的建议使用完整的XML标记,并使用以下略微调整的代码:

print "CHECKING: " . shell_exec("echo '{$output}' > /tmp/tested.xml");

ps:你也是正确的,一个apache允许目录的完整路径是必要的。