0

Linuxサーバー上にPHP経由のXML出力を含むファイルを作成しようとしています。

次のコード行を使用しています。

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

$ output変数には適切にフォーマットされたXMLが含まれており、tested.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 に答える