我正在尝试在我的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文件仍然没有被创建。
答案 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允许目录的完整路径是必要的。