アダルトサイト作成

アダルトサーバ

アダルトASP

よくある質問

お役立ちテクニック

相互リンク

サイトマップの自動作成

PHPで動的ページのサイトマップファイル(sitemap.xml)を作成PHPで動的ページのサイトマップファイル(sitemap.xml)を作成

この方法は、ある程度PHP、MYSQLの理解がある方推奨です。とはいってもそこまで難しい方法ではないため、初心者の方でも十分実装可能です。サイトマップファイルの各タグ、オプションについてはこちら

動的ページでサイトマップファイルがすぐに変更になるサイトは、毎回サイトマップの更新が発生し、更新作業を面倒に感じている方も多いと思います。

この方法は、PHPによって動的ページのサイトマップ作成作業を簡略化するものです。スクレイピングサイト等で、記事が自動更新され、その内容をデーターベースに格納されている方には便利です。サーバーにcronjob機能があれば、自動実行で更新作業自体を自動化できます。

※MYSQLに動的ページの引数情報等が格納されているのを前提としています。


動的ページのサイトマップ自動作成のPHPサンプル動的ページのサイトマップ自動作成のPHPサンプル

PHPでの動的ページのサイトマップ自動作成のサンプルソースを記述します。

サンプルは、データベースに格納されている引数付URLページIDを取得し、引数付ページのサイトマップを作成します。

弊サイトは動的ページはないため、サンプルに記載されている動的ページのURLは存在しません。

<?php
//データベースに接続
if (!$con = mysql_connect("localhost", "ユーザID", "パスワード")) {
  echo "接続エラー" ;
  exit ;
}
//データベースを選択
if (!mysql_select_db("データベース名", $con)) {
  echo "データベース選択エラー" ;
  exit ;
}

//引数付ページ内容の取得
mysql_query("SET NAMES utf8"); 
$query = "SELECT no FROM sample_mst ORDER BY no";

if (!$res = mysql_query($sql)) {
  echo "SQL実行時エラー" ;
  exit ;
}

while($row = mysql_fetch_array($res)){
	$no[] = $row["no"];
}

//現在時刻取得・変換
$now_timestamp = time();
$now = date("Y-m-d",$now_timestamp);

//固定URLページの出力
//サンプルのためURL数省略してます。自サイトに合わせて変更要
$output = "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">
   <url>
      <loc>http://adult-affi.info/</loc>
      <lastmod>$now</lastmod>
      <changefreq>always</changefreq>
      <priority>1.0</priority>
   </url>
   <url>
      <loc>http://adult-affi.info/adultsite/</loc>
      <lastmod>$now</lastmod>
      <changefreq>yearly</changefreq>
      <priority>0.5</priority>
   </url>
   <url>
      <loc>http://adult-affi.info/adultsever/</loc>
      <lastmod>$now</lastmod>
      <changefreq>yearly</changefreq>
      <priority>0.5</priority>
   </url>
";

//引数付ページの出力
foreach ($no as $pageno){

  $output .= "   <url>
      <loc>http://adult-affi.info/page/?no=".$pageno."</loc>
      <lastmod>$now</lastmod>
      <changefreq>weekly</changefreq>
      <priority>0.5</priority>
   </url>
";

}

$output .= "</urlset>";

//サイトマップ出力
$fp = fopen('../sitemap.xml','w'); //ドメイン配下のphpディレクトリで実行した場合のパスのため変更要

if ($fp){
  if (flock($fp, LOCK_SH)){
     if(fwrite($fp,$output) == FALSE){
       print("サイトマップの書き込みに失敗しました。");
     }
  }else{
    print("ファイルロックに失敗しました。");
  }
}

$flag = fclose($fp);

if (!$flag){
    print('クローズに失敗しました');
}
?>

※この方法は、自サイトURLを自動で抽出するようなクローラー機能ではないため、ご注意ください。


<< 「お役立ちテクニック/備忘メモ」に戻る

▲ページトップに戻る