首页 >> SEO优化, 网站技术 >> 自动生成网站地图sitemap的php程序

自动生成网站地图sitemap的php程序

Catagory:SEO优化, 网站技术, Date:2011年05月27日,Author: 工业品营销-贾定强

网站地图(sitemap),相信你不会陌生吧。做SEO的,向搜索引擎提交sitemap是最保证收录的最基本的手法了。小型网站的sitemap生成一般都很简单,我一般用http://www.xml-sitemaps.com/来生成网站地图。但稍微大点的网站就不能用这个工具来生成了,而且对于动态网站来说,sitemap的最佳方式是随着内容的变化而变化,当内容变化的时候,sitemap自动重新生成并自动ping搜索引擎。今天跟大家分享一下关于网站地图sitemap生成的一段php程序。

sitemap.inc.php:是主要的生成sitemap的类。

<?php
// sitemap generator class
class Sitemap
{
// constructor receives the list of URLs to include in the sitemap
function Sitemap($items = array())
{
$this->_items = $items;
}

// add a new sitemap item
function addItem($url,
$lastmod = ”,
$changefreq = ”,
$priority = ”,
$additional_fields = array())
{
$this->_items[] = array_merge(array(‘loc’ => $url,
‘lastmod’ => $lastmod,
‘changefreq’ => $changefreq,
‘priority’ => $priority),
$additional_fields);
}

// get Google sitemap
function getGoogle()
{
ob_start();
header(‘Content-type: text/xml’);
echo ‘<?xml version=”1.0″ encoding=”UTF-8″?>’;
echo ‘<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”>’;
foreach ($this->_items as $i)
{
echo ‘<url>’;
foreach ($i as $index => $_i)
{
if (!$_i) continue;
echo “<$index>” . $this->_escapeXML($_i) . “</$index>”;
}
echo ‘</url>’;
}
echo ‘</urlset>’;
return ob_get_clean();
}

// escape string characters for inclusion in XML structure
function _escapeXML($str)
{
$translation = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES);
foreach ($translation as $key => $value)
{
$translation[$key] = ‘&#’ . ord($key) . ‘;’;
}
$translation[chr(38)] = ‘&’;
return preg_replace(“/&(?![A-Za-z]{0,4}\w{2,3};|#[0-9]{2,3};)/”,”&#38;” ,
strtr($str, $translation));
}

}
?>

sitemap.php:调用sitemap.inc.php,具体实现sitemap。

<?php
// redirect requests to dynamic to their keyword rich versions
require_once ‘/sitemap.inc.php’;

define(‘SITE_DOMAIN’, ‘http://www.jiadingqiang.com’);

// create the Sitemap object
$s = new Sitemap();

// add sitemap items
$s->addItem(SITE_DOMAIN);
$s->addItem(SITE_DOMAIN.”/aboutus.html”);
$s->addItem(SITE_DOMAIN.”/whatnew.php”);

//在这里可以通过连接数据库,生成URL并通过条用$s->addItem()加入到sitemap中。
// output sitemap
if (isset($_GET[‘target’]))
{
// generate Google sitemap
if (($target = $_GET[‘target’]) == ‘google’)
{
echo $s->getGoogle();
}
}
?>

.htaccess文件,重定向sitemap.xml文件到sitemap.php。

RewriteEngine on

RewriteRule ^sitemap.xml$ sitemap.php?target=google [L]

ping_google()函数,在网站内容更新的地方调用这个函数,可以自动通知Google网站地图更新。

function ping_google(){
$sitemapUrl = ‘http://www.miningequipments.net/sitemap.xml’;
$pingUrl = “http://www.google.com/webmasters/sitemaps/ping?sitemap=”.urlencode($sitemapUrl);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $pingUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch) or die (curl_error()); //执行curl请求
//echo $result;
curl_close($ch);
}

注意:这个函数需要开启php的curl模块,具体的开启方式根据服务器的不同自己在网上找方法吧,或者直接联系主机提供商要求开启。

将这四部分加入到你的网站,原来的静态的sitemap.xml就可以实现动态化自动更新了,而且会随时通知Google服务器网站内容更新,不错吧。欢迎给我留言交流,您的支持是我继续分享的最大动力。

来源:工业品营销,原文地址:http://www.jiadingqiang.com/2149.html,欢迎分享本文,转载请保留出处!

Comments: 16 Responses to “ 自动生成网站地图sitemap的php程序 ”

[…] 给WordPress重定向文件.htaccess新增重定向规则 Date:2015年01月21日 今天想给WordPress重定向文件.htaccess新增重定向规则,实现直接从数据库中读取文章生成sitemap的功能(参见《 自动生成网站地图sitemap的php程序》)。但发现直接修改.htaccess文件总是有问题,解决方法分享一下。 […]

一月 9th, 2013
红色石头 说 Said:

http://wzwahl36.net/blog.php?id=71
同样的功能,不一样的实现~

[回复]

十二月 14th, 2012
丰禾棋牌 说 Said:

正在找php实现自动生成sitemap的方法,很不错

[回复]

八月 11th, 2011
ipad壁纸 说 Said:

这个很不错 正需要呢

[回复]

六月 15th, 2011
elaine 说 Said:

很巧,最近网站收录有问题,正想找些自动生成site map的工具,这个对zencart有用吗?

[回复]

小强 回复:

应该是有用的,不过还的自己做一定的修改。

[回复]

五月 31st, 2011

看来我们都有待学习啊

[回复]

五月 31st, 2011
小说排行榜 说 Said:

为啥都看不懂呢

[回复]

五月 30th, 2011

可惜我看不懂,今天晚上我买了本dw和php的书,希望以后能看懂

[回复]

五月 29th, 2011

我看得懂一点。哈哈。

[回复]

五月 29th, 2011
seo优化 说 Said:

还是不太明白。

[回复]

五月 28th, 2011
网站模板 说 Said:

呵呵,很好啊,学习了!

[回复]

五月 27th, 2011
辟邪物品 说 Said:

一堆英文 看不懂、、

[回复]

五月 27th, 2011
辟邪物品 说 Said:

好东西要顶啊!!

[回复]

五月 27th, 2011
长沙二手房 说 Said:

来看看、、

[回复]

五月 27th, 2011
燃烧器 说 Said:

呵呵 看不懂

[回复]

你也来说几句:

名字*必填
邮箱*必填,不会被公开
网站
QQ群交流
最近文章
文章归档
  • 2017 (3)
  • 2016 (30)
  • 2015 (63)
  • 2014 (21)
  • 2013 (38)
  • 2012 (25)
  • 2011 (67)
  • 2010 (268)
  • 2009 (19)