samdark/sitemap 是一款 Sitemap和Sitemap索引构建器。支持谷歌和360。
通过Composer进行安装非常简单:
composer require samdark/sitemap
然后引入Composer类vendor/autoload.php
即可
use samdark\sitemap\Sitemap;
use samdark\sitemap\Index;
// 创建 sitemap
$sitemap = new Sitemap(__DIR__ . '/sitemap.xml');
// 添加网址 URLs
$sitemap->addItem('http://example.com/mylink1');
$sitemap->addItem('http://example.com/mylink2', time());
$sitemap->addItem('http://example.com/mylink3', time(), Sitemap::HOURLY);
$sitemap->addItem('http://example.com/mylink4', time(), Sitemap::DAILY, 0.3);
// write it
$sitemap->write();
// get URLs of sitemaps written
$sitemapFileUrls = $sitemap->getSitemapUrls('http://example.com/');
// create sitemap for static files
$staticSitemap = new Sitemap(__DIR__ . '/sitemap_static.xml');
// add some URLs
$staticSitemap->addItem('http://example.com/about');
$staticSitemap->addItem('http://example.com/tos');
$staticSitemap->addItem('http://example.com/jobs');
// write it
$staticSitemap->write();
// get URLs of sitemaps written
$staticSitemapUrls = $staticSitemap->getSitemapUrls('http://example.com/');
// create sitemap index file
$index = new Index(__DIR__ . '/sitemap_index.xml');
// add URLs
foreach ($sitemapFileUrls as $sitemapUrl) {
$index->addSitemap($sitemapUrl);
}
// add more URLs
foreach ($staticSitemapUrls as $sitemapUrl) {
$index->addSitemap($sitemapUrl);
}
// write it
$index->write();
use samdark\sitemap\Sitemap;
// create sitemap
// be sure to pass `true` as second parameter to specify XHTML namespace
$sitemap = new Sitemap(__DIR__ . '/sitemap_multi_language.xml', true);
// Set URL limit to fit in default limit of 50000 (default limit / number of languages)
$sitemap->setMaxUrls(25000);
// add some URLs
$sitemap->addItem('http://example.com/mylink1');
$sitemap->addItem([
'ru' => 'http://example.com/ru/mylink2',
'en' => 'http://example.com/en/mylink2',
], time());
$sitemap->addItem([
'ru' => 'http://example.com/ru/mylink3',
'en' => 'http://example.com/en/mylink3',
], time(), Sitemap::HOURLY);
$sitemap->addItem([
'ru' => 'http://example.com/ru/mylink4',
'en' => 'http://example.com/en/mylink4',
], time(), Sitemap::DAILY, 0.3);
// write it
$sitemap->write();
There are methods to configure Sitemap
instance:
setMaxUrls($number)
. Sets maximum number of URLs to write in a single file.setMaxBytes($number)
. Sets maximum size of a single site map file.setBufferSize($number)
. Sets number of URLs to be kept in memory before writing it to file.setUseIndent($bool)
. Sets if XML should be indented. Default is true.setUseGzip($bool)
. Sets whether the resulting sitemap files will be gzipped or not.false
. zlib
extension must be enabled to use this feature.There is a method to configure Index
instance:
setUseGzip($bool)
. Sets whether the resulting index file will be gzipped or not.false
. zlib
extension must be enabled to use this feature.配置Sitemap实例的方法:
配置Index实例的方法:
composer install
./vendor/bin/phpunit