Tôi có một trang web lớn mà tôi tạo ra một sơ đồ trang web (thực tế cũng có một số sơ đồ trang web trong lô 40k URL mỗi lần). Đây là phiên bản cơ bản của trình tạo sơ đồ trang web php mà tôi đã viết:
<?php
/* Do some stuff */
/* Connect to mysql etc */
/* 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);
/* Loop through our database results and create URL entries for each page */
while ($row = mysql_fetch_array($result)){
$currentTrack = $domtree->createElement("url");
$currentTrack = $xmlRoot->appendChild($currentTrack);
$currentTrack->appendChild($domtree->createElement('loc','https://mysite.com/viewer.php?file='.$row['filename']));
$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');
Rõ ràng là milage của bạn sẽ thay đổi và bạn sẽ cần phải làm một số điều để làm điều này cho bạn, nhưng bạn có thể chạy một vòng lặp như thế này để tạo ra một sơ đồ trang web của tất cả các danh mục, sau đó tất cả các sản phẩm, v.v.