Google SiteMap 生成工具 (PHP & ASP)

时间:2007-02-14 19:08:43   来源:  作者:  点击:次  出处:技术无忧
关键字:Google SiteMap

PHP版代码:

 程序代码
<?php
header('Content-type: application/xml; charset="GB2312"',true);
?>
<!--
@author Tobias Kluge, enarion.net
@version 0.2, 2005-06-05 17:40 PT
@status working
@update Aditya Naik, so1o@so1o.net
@Licence: LGPL

editor:        MildSeven@im286.com

-->
<?php
$website = "http://my.xxxxx.com"; /* change this */
$page_root = "/usr/local/psa/home/vhosts/subdomains/my/httpdocs";        /* change this */

/* maybe change this: */
$changefreq = "weekly"; //"always", "hourly", "daily", "weekly", "monthly", "yearly" and "never".
$priority = 0.8;
/* this sets the last modification date of all pages to the current date */
$last_modification = date("Y-m-d\TH:i:s") . substr(date("O"),0,3) . ":" . substr(date("O"),3);

/* list of allowed directories */
$allow_dir[] = "web";

/* list of disallowed directories */
$disallow_dir[] = "admin";
$disallow_dir[] = "_notes";

/* list of disallowed file types */
$disallow_file[] = ".inc";
$disallow_file[] = ".old";
$disallow_file[] = ".save";
$disallow_file[] = ".txt";
$disallow_file[] = ".js";
$disallow_file[] = "~";
$disallow_file[] = ".LCK";
$disallow_file[] = ".zip";
$disallow_file[] = ".ZIP";
$disallow_file[] = ".CSV";
$disallow_file[] = ".csv";
$disallow_file[] = ".css";
$disallow_file[] = ".class";
$disallow_file[] = ".jar";
$disallow_file[] = ".mno";
$disallow_file[] = ".bak";
$disallow_file[] = ".lck";
$disallow_file[] = ".BAK";

/* simple compare function: equals */
function ar_contains($key, $array) {
  foreach ($array as $val) {
    if ($key == $val) {
        return true;
    }
  }
  return false;
}

/* better compare function: contains */
function fl_contains($key, $array) {
  foreach ($array as $val) {
    $pos = strpos($key, $val);
    if ($pos === FALSE) continue;
    return true;
  }

  return false;
}

/* this function changes a substring($old_offset) of each array element to $offset */
function changeOffset($array, $old_offset, $offset) {
  $res = array();
  foreach ($array as $val) {
    $res[] = str_replace($old_offset, $offset, $val);
  }
  return $res;
}

/* this walks recursivly through all directories starting at page_root and
   adds all files that fits the filter criterias */
// taken from Lasse Dalegaard, http://php.net/opendir
function getFiles($directory, $directory_orig = "", $directory_offset="") {
   global $disallow_dir, $disallow_file, $allow_dir;

   if ($directory_orig == "") $directory_orig = $directory;

   if($dir = opendir($directory)) {
       // Create an array for all files found
       $tmp = Array();

       // Add the files
       while($file = readdir($dir)) {
               // Make sure the file exists
               if($file != "." && $file != ".." && $file[0] != '.' ) {
               // If it's a directiry, list all files within it
               //echo "point1<br>";
             if(is_dir($directory . "/" . $file)) {
                  //echo "point2<br>";
                 $disallowed_abs = fl_contains($directory."/".$file, $disallow_dir); // handle directories with pathes
                $disallowed = ar_contains($file, $disallow_dir); // handle directories only without pathes
                $allowed_abs = fl_contains($directory."/".$file, $allow_dir);
                $allowed = ar_contains($file, $allow_dir);
                if ($disallowed || $disallowed_abs) continue;
                if ($allowed_abs || $allowed){
                   $tmp2 = changeOffset(getFiles($directory . "/" . $file, $directory_orig, $directory_offset), $directory_orig, $directory_offset);
                   if(is_array($tmp2)) {
                       $tmp = array_merge($tmp, $tmp2);
                   }
                }
             } else {  // files
                if (fl_contains($file, $disallow_file)) continue;
                    array_push($tmp, str_replace($directory_orig, $directory_offset, $directory."/".$file));
                   }
               }
       }

       // Finish off the function
       closedir($dir);
       return $tmp;
   }
}

$a = getFiles($page_root);


echo '<?xml version="1.0" encoding="UTF-8"?>';
?>

<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<?
foreach ($a as $file) {
?>
   <url>
      <loc><? echo utf8_encode($website.$file); ?></loc>
      <lastmod><? echo utf8_encode(date("Y-m-d\TH:i:s", filectime($page_root.$file)). substr(date("O"),0,3) . ":" . substr(date("O"),3));?></lastmod>
      <changefreq><? echo utf8_encode($changefreq); ?></changefreq>
      <priority><? echo utf8_encode($priority); ?></priority>
   </url>
<?
}
?>
</urlset>


参数说明:
$website--你的域名
$page_root--你的站点的绝对路径
$changefreq--更新时间单位 "always"(始终), "hourly"(小时), "daily"(天), "weekly"(星期), "monthly"(月), "yearly" "never"(从不)
$priority--更新频率
$allow_dir--允许列表的目录
$disallow_dir--禁止列表的目录
$disallow_file--禁止列表的文件类型

制作过程说明:
  将以上代码复制到本地存为sitemap.asp或sitemap.php,上传到你的服务器网站的根目录下,运行一下就可以在你指定的目录中(建议最好是指定为根目录)自动生成一个sitemap.xml文件了。最后进入google提交页面:https://www.google.com/webmasters/sitemaps/login,有gmail的可以用gmail直接登录。登录后把生成的xml文件地址按步骤提交就可以了。注:你的网站如果增加了新的页面,可以在增加完后再运行一下sitemap.asp或sitemap.php,并再重新提交一下sitemap.xml文件,这样就可以保证sitemap.xml文件的不断更新了!

相关网址:
Google SiteMap官方生成器及其说明:http://sourceforge.net/project/showfiles.php?group_id=137793&package_id=153422
Google 的相关探索与研究:http://www.netbei.com/Article/zz/zz6/google/Index.html
一种手动制作分析制作SiteMap方法:http://blog.blogchina.com/hooligan/3609116.html
另一个PHP版的sitemap生成程序:
 点击下载
运行界面:
==================================================================
自动生成符合GOOGLE要求的网站地图文件
Copyright Top flood
原作者 :
Kloh : TimeSplitters' Games; ImmortalPC :Immortal-PC

Laozei汉化整理 - IP查询、手机地理位置查询、身份证查询

注:
1.请把本程序放入网站根目录执行
2.程序执行前请修改如下参数(或常量)以符合你网站要求:
LIMITLIENPARFICHIER
LIMITLIENINDEXE
$ExtensionsAutorises
$DossiersInterdits
$FichiersInterdits
3.程序将把列表写入多个xml文件(如果你网页比较多的话)
4.sitemap(x).xml文件将写入根目录
URL列表(将写入sitemap)中。。。
./feed.php
./index.php
./error.php
./guestbook.php
./read.php
./tag.php
./tb.php
./view.php
./visit.php
9 行网址将被写入sitemap文件.
sitemap.xml文件生成完毕...
生成文件 sitemap.xml
全部生成完毕

技术无忧.net


文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

300x250广告位招租