米扑科技的开源项目:sitemap-php 自动生成网站地图

米扑科技旗下的产品,近期正在做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
时间: 2024-12-14 18:11:56

米扑科技的开源项目:sitemap-php 自动生成网站地图的相关文章

.net 生成网站地图 sitemap.xml

1.此处为Demo,借鉴别人的生成 xml //创建xml文件方法一 protected void btn1_OnClick(object sender, EventArgs e) { XmlText xmltext; XmlDocument xmldoc = new XmlDocument(); //加入XML的声明段落 XmlNode xmlnode = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null); xm

讲解开源项目:用 Python 生成有“灵魂”的二维码

本文作者:HelloGitHub-LITTLECHIEH 这是 HelloGitHub 推出的<讲解开源项目>系列,今天给大家推荐一个 Python 开源生成二维码的项目--qrcode 一.介绍 1.1 二维码 二维码又称二维条码,常见的二维码为 QR Code,QR 全称 Quick Response.是一个近几年来移动设备上超流行的一种编码方式,在现在的生活中二维码随处可见.我们可以用它支付.浏览网站等,为什么他会这么流行?下面说几个特点: 可存储的信息量大:可容纳多达 1850 个大写

结对项目----实现一个自动生成小学四则运算题目的命令行程序

一.Github项目地址:https://github.com/lyh27/exercise 团队成员:卢耀恒3118005065    莫政3118005067 二.需求 自然数:0, 1, 2, …. 真分数:1/2, 1/3, 2/3, 1/4, 1’1/2, …. 运算符:+, −, ×, ÷. 括号:(, ). 等号:=. 分隔符:空格(用于四则运算符和等号前后). 算术表达式: e = n | e1 + e2 | e1 − e2 | e1 × e2 | e1 ÷ e2 | (e),

eclpise创建安卓项目,不能自动生成R文件

第一种情况 找到eclipse工具栏上的Project项 在 Build Automatically前点击一下,使其处于 打√状态下即可. 或者是直接点击一下Build All(快捷键盘是ctrl+8) 第二种情况 很多人碰到创建新工程的时候出现 cannot be resolved to a variable的问题时没法在第一时间得到最好的解决 其根本原因是r.java文件没有自动生成 关于一般的解决方案在网上很多人提出来了 比如CLEAN工程,CLEAN UP RESOURCE,Androi

GitHub上线Trending功能,帮你轻松找到有潜力的开源项目

转自:http://www.csdn.net/article/2013-08-14/2816574-Github-Trending-Open-Source-Project Github开源项目 摘要:GitHub已经成为全球最大的开源项目托管平台,目前该平台已托管780万个库,要想找到适合你的开源项目犹如大海捞针.不过借助GitHub新上线的Trending(趋势)页面,可以让有潜力的开源项目和开发者自动浮现出来. GitHub已经成为全球最大的开源项目托管平台,目前该平台上已经有780万个项目

android常用的开源项目推荐

1.图片加载:imageLoader 是个非常不错的图片加载控件,能异步流畅的加载大量图片. Github地址:https://github.com/nostra13/Android-Universal-Image-Loader 2.侧边栏:slidingmenu 非常方便的侧边栏控件,功能齐全,效果也不错. Github地址:https://github.com/jfeinstein10/SlidingMenu 3.网络访问:volley 简单易用的网络通信框架,适合数据量不大,但频繁通信的场

小程序官网CMS开源项目出炉,Weixin-App-CMS 1.0 版本正式发布

Weixin-App-CMS 是捷微团队开发的微信小程序CMS开源项目,涵盖了微网站的基本功能,能够快速发布简单易用的小程序网站.采用工具"微信web开发"上传小程序,即可快速体验发布体验小程序网站.功能已经非常完善,非常适合需要微信小程序网站的公司快速上线业务. 当前版本:v_1.0 | 2018-10-29  一.功能介绍: 此版本提供CMS基本功能: 1. 主页,文章主题推荐,专题导航,文章资讯列表:    2. 专题栏目,文章资讯列表:    3. 网站信息,位置信息,网站信息

MFC:“Debug Assertion Failed!” ——自动生成的单文档程序项目编译运行就有错误

今天照着孙鑫老师的VC++教程学习文件的操作,VS2010,单文档应用程序,项目文件命名为File,也就有了自动生成的CFileDoc.CFileView等类,一进去就编译运行(就是最初自动生成的项目),编译通过,可运行时直接弹出错误框,有点小懵,,,啥都没做就给我看这个: 图一   错误提示框 后来搜索一查,网上好多类似的错误以及解决方案,几乎都试了个遍,有: 方法(1)-重新生成解决方案,或者将项目文件目录下Debug文件夹删了,重新生成Release版: 方法(2)-可以先声明一个临时的C

解决eclipse下android项目不能自动生成R.java文件

通常情况下R.java文件是项目建立时自动生成的.但是,大家在eclipse下做开发的时候偶尔会遇到R.java文件不能自动生成.现在就来解决这个问题. 1.eclipse ADT插件的版本与android SDK版本不对应 一般问题就出现在这儿,这样的情况只要把ADT插件和SDK都更新到最新,重启eclipse一切就OK了. 红框那儿要全部install到最新. 2.eclipse自己出问题(和你闹别扭,哈哈) 这样的你就clean一下你的项目,或者使用android工具fix下.R.java