0

投稿が絶えず生成されている動的なサイトがあり、コード化されているため、新しい投稿が追加されるたびに、サイトマップのURLエントリがsitemap.xmlファイルの下部に追加されます。

        $lastID = $db->lastInsertId();
    $file = 'sitemap.xml';
    $current = file_get_contents($file);
    $current .= "<url>
    <loc>http://website.net/viewpost.php?ID=".$lastID."</loc>
    <changefreq>monthly</changefreq>
    </url>";
    file_put_contents($file, $current);

これは機能しますが、xmlファイルurlsetの終了タグはファイルの最後にある必要があります。したがって、このデータを追加すると、urlsetの後になり、これを文字列に追加した場合でも、これには複数の終了タグがあります。終了タグの後にファイルが移動しないようにファイルを更新するにはどうすればよいですか。サイトマップ全体を毎回再生成することは機能しますが、現時点ではほぼ100ページあり、データを取得するには複数のテーブルをクエリする必要があるため、大変な作業のようです。

4

1 に答える 1

1

これは、別の要素の前、後、または内部に要素を挿入するための単純な関数です。

<?php 

public function myInsertNode($newNode, $refNode, $insertMode=null) {

    if(!$insertMode || $insertMode == "inside") {

        $refNode->appendChild($newNode);

    } else if($insertMode == "before") {

        $refNode->parentNode->insertBefore($newNode, $refNode);

    } else if($insertMode == "after") {

        if($refNode->nextSibling) {
            $refNode->parentNode->insertBefore($newNode, $refNode->nextSibling);
        } else {
            $refNode->parentNode->appendChild($newNode);
        }      

    }

}

?>
于 2013-03-02T22:02:35.467 に答える