米扑科技旗下的产品,近期正在做SEO网站优化,其中子需求之一是调研实现了网站地图(sitemap.xml)

封装简化了许多功能模块,现在分享出来,源代码可在Github上下载,有简单的示例。

Github 开源网址sitemap-php

What is sitemap-php ?

sitemap-php 是一个轻量级、简单快速生成网站地图的开源项目,由北京米扑科技有限公司(mimvp.com)开发分享。

通过简单的配置定义,一个函数createSitemap(),可自动生成sitemap.xml、sitemap.html等网站地图文件,

自动生成的xml、html文件,支持Google、Bing、Baidu等主流搜索引擎收录。

Fast and lightweight class for generating Google sitemap XML files and index of sitemap files.

Written on PHP and uses XMLWriter extension (wrapper for libxml xmlWriter API) for creating XML files. XMLWriter extension is enabled by default in PHP 5 >= 5.1.2.

If you having more than 50000 url, it splits items to seperated files. (In benchmarks, 1.000.000 url was generating in 8 seconds)

示例:

sitemap.xml : http://mimvp.com/sitemap.xml

sitemap.html : http://mimvp.com/sitemap.html

How to use

Sitemap 封装了生成sitemap.xml的属性和方法的类,使用非常简单,示例代码:

function testSitemap() {
$sitemap = new Sitemap("http://mimvp.com"); $sitemap->addItem('/', '1.0', 'daily', 'Today');
$sitemap->addItem('/hr.php', '0.8', 'monthly', time());
$sitemap->addItem('/index.php', '1.0', 'daily', 'Jun 25');
$sitemap->addItem('/about.php', '0.8', 'monthly', '2017-06-26'); $sitemap->addItem('/hr2.php', '1.0', 'daily', time())->addItem('/index2.php', '1.0', 'daily', 'Today')->addItem('/about2.php', '0.8', 'monthly', 'Jun 25'); $sitemap->endSitemap();
}
  1. 初始化类对象
$sitemap = new Sitemap("http://mimvp.com");
  1. 添加Item
$sitemap->addItem('/', '1.0', 'daily', 'Today');
$sitemap->addItem('/hr.php', '0.8', 'monthly', time());
$sitemap->addItem('/index.php', '1.0', 'daily', 'Jun 25');
$sitemap->addItem('/about.php', '0.8', 'monthly', '2017-06-26');

或者

$sitemap->addItem('/hr2.php', '1.0', 'daily', time())->addItem('/index2.php', '1.0', 'daily', 'Today')->addItem('/about2.php', '0.8', 'monthly', 'Jun 25');
  1. 结束文档
$sitemap->endSitemap();
  1. 生成结果 sitemap.xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset 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" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://mimvp.com/</loc>
<priority>1.0</priority>
<changefreq>daily</changefreq>
<lastmod>2017-06-26T00:00:00+08:00</lastmod>
</url>
<url>
<loc>http://mimvp.com/hr.php</loc>
<priority>0.8</priority>
<changefreq>monthly</changefreq>
<lastmod>2017-06-26T20:16:23+08:00</lastmod>
</url>
<url>
<loc>http://mimvp.com/index.php</loc>
<priority>1.0</priority>
<changefreq>daily</changefreq>
<lastmod>2017-06-25T00:00:00+08:00</lastmod>
</url>
<url>
<loc>http://mimvp.com/about.php</loc>
<priority>0.8</priority>
<changefreq>monthly</changefreq>
<lastmod>2017-06-26T00:00:00+08:00</lastmod>
</url>
</urlset>

More Functions

  1. 设置根域名
$sitemap = new Sitemap("http://mimvp.com");

也可以修改初始化的域名为

$sitemap->setDomain('http://blog.mimvp.com');
  1. 设置保存路径 sitemap.xml默认保存在当前目录下,也可设置文件夹目录,例如: xmls/sitemap,表示sitemap.xml保存在当前目录下的xmls/目录下,其中xmls目录会自动创建。注:支持多级目录
$sitemap->setXmlFile("xmls/sitemap");
$sitemap->setXmlFile("xmls/mimvp/sitemap");
  1. 设置是否更多头部
$sitemap->setIsChemaMore(true);

如果设置为true,则sitemap.xml文件头部会增加一些头部信息:

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"
  1. 获取当前写入的sitemap文件
$sitemap->getCurrXmlFileFullPath();

Advanced Functions

  1. 指定包含文件,以/开头
$GIncludeArray = array("", "/index.php", "about.php", "hr.php");
  1. 排除特定文件或目录
$GExcludeArray = array("usercenter/", "sadmin/", "admin/", "sitemap.php");
  1. 递归扫描指定目录,默认扫描三层(可自己设定)
function scanRootPath($rootPath=".", $dirLevel=1, $MaxDirLevel=3, &$resArray=array())
  1. 转化 xml + xsl 为 html
function createXSL2Html($xmlFile, $xslFile, $htmlFile, $isopen_htmlfile=false) 

Sitemap Demo

  1. 全局变量,G开头
$GCONFIG = array(	"domain"=>"http://mimvp.com",
"xmlfile"=>"sitemap",
"htmlfile"=>"sitemap.html",
"xslfile"=>"sitemap-xml.xsl",
"isopen_xmlfile"=>true,
"isopen_htmlfile"=>true,
"isscanrootpath"=>true,
"isxsl2html"=>true,
"isschemamore"=>true);
  1. 生成sitemap.xml
createSitemap();

生成示例:

  1. 生成 sitemap.html
createXSL2Html($xmlFile, $xslFile, $htmlFile, $isopen_htmlfile=false);

生成示例:

You need to submit sitemap.xml and sitemap.html to Google、 Bing、 Baidu,etc.

sitemap-php项目,目前支持指定网页、排除网页、扫描根目录等网站地图;
后期完善时,会增加导出数据库、爬取整个网站等功能,
也希望您的加入,继续完善此项目

sitemap-php All Rights by mimvp.com

最新文章

  1. C#实现通用数据过滤窗体
  2. python中的自测语句是什么?
  3. iOS 成员变量的作用范围
  4. 有关window.location 对象
  5. 资深系统管理员给Linux/Unix新人们的建议
  6. SQL常用函数
  7. C#第八天
  8. 【java】打印一个对象即打印出该对象toString()返回值
  9. BZOJ_2588_Spoj 10628. Count on a tree_树剖+主席树
  10. 浅谈pc和移动端的响应式
  11. ASP.NET Core StaticFiles中间件修改wwwroot(转载)
  12. Install kubernetes without yum
  13. 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
  14. 页面 JavaScript 存在多个同名方法的调用分析
  15. dhroid - NetJSONAdapter 网络化的adapter
  16. UVa 11400 照明系统设计
  17. kali linux之取证
  18. Divide by three, multiply by two(DFS+思维)
  19. 洛谷 P2577 [ZJOI2005]午餐
  20. python3中,pycharm中怎么连接数据库

热门文章

  1. Bootstrap提示信息(标签、徽章、巨幕和页头)
  2. VIM基础知识整理(附思维导图)
  3. OpenCV探索之路(十八):使用imwrite调整保存的图片质量
  4. App Extensions篇之Sticker Pack Extension
  5. 是否使用安全模式启动word
  6. JavaScript创建对象的方法
  7. 对sppnet网络的理解
  8. webpack 多页应用架构系列实战
  9. 【转载】 ISO14229系列之一:简介
  10. Mybaits简诉