2008年5月5日月曜日

サイトマップの生成処理

sitemaps.orgを参考にサイトマップファイル生成スクリプトを作ってみました。
ファイルサイズを抑えるためにgzip形式にしてみました。
ファイル関連の関数はあまり使わないので、ちょっと手こずりました。

ファイル(sitemap.xml.gz)は事前にアップロードし、パーミッションは707で指定しました。

$urlやdateを任意に変更しループ処理すれば、URL数の多いサイトでも簡単にサイトマップの生成ができます。

注意点
1ファイルに指定できるURLは50000までです。
50000を超える場合には、ファイルを分け、インデックスファイルを作成してください。


<?php
$xml = '<?xml version="1.0" encoding="UTF-8"?>'."\n";
$xml .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."\n";
$xml .= ' <loc>'.$url.'</loc>'."\n";
$xml .= ' <lastmod>'.date("Y-m-d").'</lastmod>'."\n";
$xml .= ' </url>'."\n";
$xml .= '</urlset>'."\n";

//gzipで圧縮
$zp = gzopen("sitemap.xml.gz", "w9");
gzwrite($zp,$xml);
gzclose($zp);
?>

0 件のコメント: