0

私はforeachxmlを出力する2層を取得しようとしています-そしてその結果の出力のみを別のファイルにコピーします。

文字列を上書きしても問題ないので、「出力を他のファイルにコピーする方法」と「foreachを文字列に変換する方法」のどちらを尋ねるかさえわからないほど混乱しています。

これまでのところ私は

// clear previous contents of tutorials.xml
$myFile = "tutorials.xml";
$fh = fopen($myFile, 'a') or die("can't open file");
$stringData = "";
fwrite($fh, $stringData);


// here begins the string I want to write to the other file
echo <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<albums>
EOF;

foreach($albumInfo as $album) {
echo <<<EOF

<album>
    <id>{$album->id}</id>
    <title>{$album->title}</title>
    <videos>
EOF;
}
foreach($videos as $video) // loop through our videos
{
$minutes = floor($video->duration/60);
$secondsleft = $video->duration%60;

if($secondsleft<10)
    $secondsleft = "0" . $secondsleft;

echo <<<EOF
        <video>
            <id>{$video->id}</id>
            <title>
            <description>{$video->description}</description>
            <duration>{$video->duration}</duration>
        </video>
EOF;
}
echo <<<EOF
</album>
EOF;
?>
<?php echo '</albums>' ?>
// here ends the string I want to write to the other file

// the script below just takes the raw php and copies it over - I need the output.
<?php
copy('tutorials-job.php', 'tutorials.xml');
?>

ご協力ありがとうございました!

4

2 に答える 2

0

echoを変数への割り当てに置き換えてから、それをファイルに書き込みます

echo <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<albums>
EOF;

になります

$str='
<?xml version="1.0" encoding="UTF-8"?>
<albums>
';

後者の使用

$str .='

文字列に追加する

于 2012-12-11T19:40:48.527 に答える
0

このコードの最初の数行を使用して、コンテンツをファイルに出力する方法を知っていることをすでに示しています。出力を出力バッファにロードしてからバッファの内容をファイルに書き込むか、echoすべてを書き込む代わりに、そのデータを文字列に入れてその文字列をファイルに書き込むことができます。

そうは言っても、XML形式に固執していない場合は、JSONのようなものを使用して、1行のコードで配列/オブジェクト表現をシリアル化表現に簡単に変換できるようにすることを検討してください。

于 2012-12-11T19:45:54.107 に答える