定期的にページのログを追加する Web サイトがあります。現在、データベースを反復処理して数百の URL を取得し、それらを sitemap-1 に追加してから、次の数百を取得して sitemap-2 に追加しています。私はこれをすべて手作業で行っています。
すべての新しいページを作成してデータベースに挿入する while ループを使用したいと思います。現在の sitemap-x をチェックして、URL カウントのしきい値に達しているかどうかを判断し、新しいサイトマップ ++ を作成してページの追加を開始するか、現在のサイトマップに追加するだけです。
どうすればこれを達成できますか?
サイトマップを作成するためのコードがいくつかありますが、2000 個の URL でいっぱいになっているかどうかを確認してから、新しいサイトマップの作成に進む方法がわかりません。
<?php
/* create a dom document with encoding utf8 */
$domtree = new DOMDocument('1.0', 'UTF-8');
/* create the root element of the xml tree */
$xmlRoot = $domtree->createElement("urlset");
$xmlRoot -> appendChild(new DomAttr('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9'));
$xmlRoot -> appendChild(new DomAttr('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'));
$xmlRoot -> appendChild(new DomAttr('xsi:schemaLocation', 'http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd'));
/* append it to the document created */
$xmlRoot = $domtree->appendChild($xmlRoot);
/* tehloop */
while ($row = mysql_fetch_array($result)){
$currentTrack = $domtree->createElement("url");
$currentTrack = $xmlRoot->appendChild($currentTrack);
$currentTrack->appendChild($domtree->createElement('loc','website'));
$currentTrack->appendChild($domtree->createElement('changefreq','weekly'));
$currentTrack->appendChild($domtree->createElement('priority','1.0'));
}
/* save the xml sitemap */
$domtree->formatOutput = true;
$domtree->preserveWhitespace = false;
$domtree->save('sitemap.xml');
?>