自制sitemap生成器
Posted by jiayi | Posted in web | Posted on 31-08-2008
0
回到学校便与无聊的小学期为伍…今天没啥事,想到自己的sitemap很久没有更新,于是用php写了个sitemap生成器。
这个程序不是去抓网页的连接…jiayi只想提交主页和文章,所以直接从数据库取数据…有偷懒之嫌(怎么抓连接俺还不会…)
经Google抓取分析,一切正常。下面贴下代码
<?php
/**
* @Author:Sanding,http://www.jiayii.com
* @copyright (c) Sanding 2008
* @license http://opensource.org/licenses/gpl-license.php GNU Public Licens
**/
require("config.php");
$forbid_cats=array("扯dan","IT新闻"); //不被爬到的分类
$art_priority=0.8; //文章优先级,小于1.0
$local_time=date("Y-m-dTH:i:s")."+00:00";
$frequency="weekly"; //更新频率 always || hourly || daily || weekly || monthly || yearly || never
$head_text=‘<?xml version="1.0" encoding="UTF-8"?>
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<!– created by Sanding,http://www.jiayii.com –>
<url>
<loc>http://www.jiayii.com</loc>
<priority>1.0</priority>
<lastmod>’.$local_time.‘</lastmod>
<changefreq>weekly</changefreq>
</url>’."n";
$footer_text=‘</urlset>’;
$middle_text="";
/****************sitemap生成***************/
if(($fh=fopen("rss/jiayi_sitemap.xml","wt+")) && chmod("rss/jiayi_sitemap.xml",0755))
{
mysql_pconnect($dbhost,$dbuser,$dbpasswd);
mysql_query("SET NAMES ‘utf8′");
mysql_select_db("$dbname");
$query="SELECT id,en_title FROM article WHERE"; //Edit it
$and=" ";
for($i=0;$i<count($forbid_cats);$i++)
{
$query.=$and."cat != ‘".$forbid_cats[$i]."’"; //去掉无聊的分类
$and=" AND ";
}
$query.=" ORDER BY pubtime DESC";
$result=mysql_query($query);
while($row=mysql_fetch_row($result))
{
$middle_text.=" <url>
<loc>http://".$_SERVER['HTTP_HOST']."/showart/".$row[1]."-".$row[0]."</loc> //文章网址
<priority>".$art_priority."</priority>
<lastmod>".$local_time."</lastmod>
<changefreq>".$frequency."</changefreq>
</url>n";
}
$contents=$head_text.$middle_text.$footer_text;
if(!fwrite($fh,$contents))
echo "<script type=’text/javascript’>alert(’sitemap创建失败’);</script>";
}
else
echo "<script type=’text/javascript’>alert(’sitemap创建失败’);</script>";
?>
注释之处改为自己的设置
每次发表文章时执行一下就可以了~

。