前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >米扑科技的开源项目:sitemap-php 自动生成网站地图

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

作者头像
阳光岛主
发布2019-02-18 15:16:05
1.8K0
发布2019-02-18 15:16:05
举报
文章被收录于专栏:米扑专栏米扑专栏

米扑科技旗下的产品,近期正在做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的属性和方法的类,使用非常简单,示例代码:

代码语言:javascript
复制
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. 初始化类对象
代码语言:javascript
复制
$sitemap = new Sitemap("http://mimvp.com");
  1. 添加Item
代码语言:javascript
复制
$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');

或者

代码语言:javascript
复制
$sitemap->addItem('/hr2.php', '1.0', 'daily', time())->addItem('/index2.php', '1.0', 'daily', 'Today')->addItem('/about2.php', '0.8', 'monthly', 'Jun 25');
  1. 结束文档
代码语言:javascript
复制
$sitemap->endSitemap();
  1. 生成结果 sitemap.xml
代码语言:javascript
复制
<?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. 设置根域名
代码语言:javascript
复制
$sitemap = new Sitemap("http://mimvp.com");

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

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

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

代码语言:javascript
复制
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文件
代码语言:javascript
复制
$sitemap->getCurrXmlFileFullPath();

Advanced Functions

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

Sitemap Demo

  1. 全局变量,G开头
代码语言:javascript
复制
$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
代码语言:javascript
复制
createSitemap();

生成示例:

sitemap.xml 示例
sitemap.xml 示例
  1. 生成 sitemap.html
代码语言:javascript
复制
createXSL2Html($xmlFile, $xslFile, $htmlFile, $isopen_htmlfile=false);

生成示例:

sitemap.html 示例
sitemap.html 示例

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

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

代码语言:javascript
复制
sitemap-php All Rights by mimvp.com
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年06月26日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • What is sitemap-php ?
  • 示例:
    • sitemap.xml : http://mimvp.com/sitemap.xml
      • sitemap.html : http://mimvp.com/sitemap.html
      • How to use
      • More Functions
      • Advanced Functions
      • Sitemap Demo
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档