cyberomulus / sitemap-generator
SiteMapGenerator 是一个PHP库,可以轻松生成网站地图和网站地图索引(包括Google特定标签)。
2.0.1
2020-03-25 22:35 UTC
Requires
- php: >=5.2.0
This package is auto-updated.
Last update: 2024-09-26 08:17:59 UTC
README
什么是 SiteMapGenerator ?
SiteMapGenerator 是一个PHP库,可以轻松生成网站地图和网站地图索引(包括Google特定标签)。
如何安装 SiteMapGenerator
安装 SiteMapGenerator 有两种方法。
如果您使用 Composer,SiteMapGenerator 可通过 Packagist 获取。
只需将依赖项添加到您的 composer.json 文件中。
{
"require": {
"cyberomulus/sitemap-generator": "~2.0"
}
}
否则,转到 SiteMapGenerator 的 GitHub 页面 并选择您想要的版本。
您可以通过“下载 ZIP”链接下载源代码。
将 ZIP 文件中的目录放置在您的项目的一个 lib 文件夹(例如)中。
使用 SiteMapGenerator 需要什么
它需要至少 PHP 版本 5.2.0 并启用 XMLWriter 扩展(默认启用)。
如何生成 SiteMapIndex
- 创建一个或多个
SiteMapEntry
- 创建一个
SiteMapIndex
- 将所有
SiteMapEntry
添加到SiteMapIndex
- 创建一个格式化器(例如:
XMLFormatter
) - 使用
Formatter::formatSiteMapIndex()
如何生成 SiteMap
- 创建一个或多个
URLEntry
- 创建一个
SiteMap
- 将所有
URLEntry
添加到SiteMap
- 创建一个格式化器(例如:
XMLFormatter
) - 使用
Formatter::formatSiteMap()
如何为 Google 的额外添加图片
- 创建一个或多个
GoogleImageEntry
- 将所有
GoogleImageEntry
添加到URLEntry
如何不激活 Google 的额外
只需在 SiteMap
构造函数中将参数设置为 false。所有 GoogleImageEntry 都不会显示
如何创建格式化器
创建一个扩展 Formatter
的类。
生成包含 Google 的额外信息的 SiteMap 的示例
<?php
require 'lib/SiteMapGenerator/src/SiteMap.php';
require 'lib/SiteMapGenerator/src/entries/SiteMapEntry.php';
require 'lib/SiteMapGenerator/src/entries/URLEntry.php';
require 'lib/SiteMapGenerator/src/entries/GoogleImageEntry.php';
require 'lib/SiteMapGenerator/src/formatter/Formatter.php';
require 'lib/SiteMapGenerator/src/formatter/XMLFormatter.php';
use Cyberomulus\SiteMapGenerator\SiteMap;
use Cyberomulus\SiteMapGenerator\Entries\URLEntry;
use Cyberomulus\SiteMapGenerator\Entries\GoogleImageEntry;
use Cyberomulus\SiteMapGenerator\Formatter\XMLFormatter;
// create a sitemap
$sitemap = new SiteMap(true);
// create url
$url1 = new URLEntry("http://www.test.com/ok.php", new DateTime(), URLEntry::CHANGE_FEQUENCE_DAILY, "0.5");
$url2 = new URLEntry("http://www.test.com/nice.php", new DateTime(), URLEntry::CHANGE_FEQUENCE_NEVER);
$url3 = new URLEntry("http://www.test.com/nice.php?test=ok&restet=super", new DateTime(), URLEntry::CHANGE_FEQUENCE_NEVER);
// create a image for Google's extra
$image1 = new GoogleImageEntry("http://www.test.com/image/img1.jpg",
"a title for image",
"a caption for image",
"Brussels, Belgium",
"http://www.test.com/image/license.txt");
$image2 = new GoogleImageEntry("http://www.test.com/image/img1.jpg",
"a another title for image",
"a another caption for image",
null,
"http://www.test.com/image/license.txt");
// add image in url
$url1->addGoogleImageEntry($image1);
$url1->addGoogleImageEntry($image2);
// add url in sitemap
$sitemap->addUrlEntry($url1);
$sitemap->addUrlEntry($url2);
$sitemap->addUrlEntry($url3);
// create formatter
$formatter = new XMLFormatter();
// output sitemap
echo "<pre>" . $formatter->formatSiteMap($sitemap) . "</pre>";
结果
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.test.com/ok.php</loc>
<lastmod>2015-05-17T15:04:38+02:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
<image:image>
<image:loc>http://www.test.com/image/img1.jpg</image:loc>
<image:title>a title for image</image:title>
<image:caption>a caption for image</image:caption>
<image:geo_location>Brussels, Belgium</image:geo_location>
<image:license>http://www.test.com/image/license.txt</image:license>
</image:image>
<image:image>
<image:loc>http://www.test.com/image/img1.jpg</image:loc>
<image:title>a another title for image</image:title>
<image:caption>a another caption for image</image:caption>
<image:license>http://www.test.com/image/license.txt</image:license>
</image:image>
</url>
<url>
<loc>http://www.test.com/nice.php</loc>
<lastmod>2015-05-17T15:04:38+02:00</lastmod>
<changefreq>never</changefreq>
</url>
<url>
<loc>http://www.test.com/nice.php?test=ok&amp;restet=super</loc>
<lastmod>2015-05-17T15:04:38+02:00</lastmod>
<changefreq>never</changefreq>
</url>
</urlset>
生成 SiteMapIndex 的示例
<?php
require 'lib/SiteMapGenerator/src/SiteMapIndex.php';
require 'lib/SiteMapGenerator/src/entries/SiteMapEntry.php';
require 'lib/SiteMapGenerator/src/formatter/Formatter.php';
require 'lib/SiteMapGenerator/src/formatter/XMLFormatter.php';
use Cyberomulus\SiteMapGenerator\SiteMapIndex;
use Cyberomulus\SiteMapGenerator\Entries\SiteMapLEntry;
use Cyberomulus\SiteMapGenerator\Formatter\XMLFormatter;
// create sitemapindex
$sitemapindex = new SiteMapIndex();
// create sitemap entries
$sitemap1 = new SiteMapLEntry("http://www.test.com/sitemap1.xml", new DateTime());
$sitemap2 = new SiteMapLEntry("http://www.test.com/sitemap1.xml", new DateTime());
$sitemap3 = new SiteMapLEntry("http://www.test.com/sitemap.php?code=3&restet=super", new DateTime());
// add sitemap entries in sitemapindex
$sitemapindex->addSiteMapEntry($sitemap1);
$sitemapindex->addSiteMapEntry($sitemap2);
$sitemapindex->addSiteMapEntry($sitemap3);
// create formatter
$formatter = new XMLFormatter();
// output sitemapindex
echo "<pre>" . $formatter->formatSiteMapIndex($sitemapindex) . "</pre>";
结果
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>http://www.test.com/sitemap1.xml</loc>
<lastmod>2015-05-17T15:07:40+02:00</lastmod>
</sitemap>
<sitemap>
<loc>http://www.test.com/sitemap1.xml</loc>
<lastmod>2015-05-17T15:07:40+02:00</lastmod>
</sitemap>
<sitemap>
<loc>http://www.test.com/sitemap.php?code=3&amp;restet=super</loc>
<lastmod>2015-05-17T15:07:40+02:00</lastmod>
</sitemap>
</sitemapindex>
SiteMapGenerator 的许可证是什么
SiteMapGenerator 在 MIT 许可证下(免费许可证)。
您可以在 LICENSE 文件中找到许可证文本。