0

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

我正在使用以下代码行:

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

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

修正:

我刚刚尝试了以下方法:

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

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

4

1 回答 1

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允许目录的完整路径。

于 2012-12-31T14:16:23.390 回答