2007/9/10 月曜日

PEAR::XML_Serializerを使ってサイトマップを出力

カテゴリー: PEAR, PHP, TODO — trek @ 0:28:31

PEAR::XML_Serializerを使って、google等で認識できるサイトマップを出力するメモです。

XML_Serializerのインストール

XML_Serializerと依存するパッケージを次のようにインストールしました。

$ bin/pear -c pear.conf install --onlyreqdeps channel://pear.php.net/XML_Serializer-0.18.0

PEARパッケージをアプリケーションごとにインストールのように、「-c pear.conf」で設定ファイルを指定しています。

サンプル

次のようにしてサイトマップのxmlを作成します。

PHP:
  1. $urls = array();
  2.  
  3. $elem = array();
  4. $elem['loc'] = 'http://url/foo';
  5. $elem['lastmod'] = Date('Y-m-d');
  6. $elem['changefreq'] = 'monthly';
  7. $elem['priority'] = '0.5';
  8. $urls[] = $elem;
  9.  
  10. $elem = array();
  11. $elem['loc'] = 'http://url/bar';
  12. $elem['lastmod'] = Date('Y-m-d');
  13. $elem['changefreq'] = 'weekly';
  14. $elem['priority'] = '0.6';
  15. $urls[] = $elem;
  16.  
  17. $options = array (
  18.                   'addDecl' => TRUE,
  19.                   'encoding' => 'UTF-8',
  20.                   'indent' => '  ',
  21.                   'rootName' => 'urlset',
  22.                   "defaultTagName"  => "url",
  23.                   "rootAttributes"  => array("xmlns" => 'http://www.sitemaps.org/schemas/sitemap/0.9'),
  24.                   );
  25.  
  26. $serializer = new XML_Serializer($options);
  27.  
  28. $result = $serializer->serialize($urls);
  29.  
  30. if ($result === true) {
  31.   $xml = $serializer->getSerializedData();
  32. }

サイトマップのメモ
  • 1個のサイトマップファイルに記述できるURLの数は、50000個まで。
  • 1個のサイトマップファイルのサイズ(圧縮前)は、10MB(10,485,760バイト)を超えてはいけない。

これらの制限の範囲に収まらない場合は、サイトマップファイルを複数に分けます。
(gzip形式で圧縮も可能)

sitemaps.org - プロトコルに次の記述があります。

複数のサイトマップを使用する場合は、サイトマップ インデックス ファイルに各サイトマップ ファイルをリストする必要があります。

複数のサイトマップファイルを作成した場合は、サイトマップ インデックス ファイルが必須のような記述に見えますが、とりあえずは気にしにないことに・・・
(googleの「ウェブマスター ツール」や、Yahooの「Yahoo! Site Explorer
-」では、複数のサイトマップを登録できるようになっています。)

リンク

サイトマップのフォーマット
sitemaps.org - プロトコル

PEARのマニュアルサイトのサンプル
PEAR :: Manual :: Example

XML_Serializerのチュートリアル
Instant XML with PHP and PEAR::XML_Serializer [PHP & MySQL Tutorials]

コメントはまだありません »

コメントはまだありません。

このコメント欄の RSS フィード トラックバック URL

コメントをどうぞ

Copyright © 2007 とれっくかいはつ
HTML convert time: 0.266 sec. Powered by WordPress ME