initbiz / sitemap
构建站点地图生成器的基本对象集
1.0.4
2024-08-06 17:05 UTC
Requires
- php: ^8.1
- ext-dom: *
- ext-xml: *
Requires (Dev)
- phpunit/phpunit: ^9.6|^10.0
This package is auto-updated.
Last update: 2024-09-06 17:16:29 UTC
README
PHP 库,用于构建面向对象的站点地图生成器。
该包仍在开发中,因此欢迎PR。
您必须编写自己的生成器(建议使用 AbstractGenerator
作为基础),并且它必须返回一个包含要包含到XML中的DOM元素的数组。
您还可以使用 BasicGenerator
,但它功能有限,主要用于测试目的。
使用示例
以下是一些使用此库的示例。
包含URL的典型站点地图
$url1 = new UrlDOMElement(); $url1->setLoc('https://www.example.com/foo.html'); $url1->setLastmod('2022-06-04'); $url1->setPriority('1.0'); $url1->setChangefreq('always'); $url2 = new UrlDOMElement(); $url2->setLoc('https://www.example.com/foo2.html'); $url2->setLastmod('2022-06-04'); $url2->setPriority('0.9'); $urlSetDOMElement = new UrlsetDOMElement(); $urlSetDOMElement->setUrls([$url1, $url2]); $DOMElements = [$urlSetDOMElement]; $generator = new BasicGenerator(); $generator->setDOMElements($DOMElements); $xml = $generator->generate();
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" 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"> <url> <loc>https://www.example.com/foo.html</loc> <lastmod>2022-06-04T00:00:00+00:00</lastmod> <changefreq>always</changefreq> <priority>1.0</priority> </url> <url> <loc>https://www.example.com/foo2.html</loc> <lastmod>2022-06-04T00:00:00+00:00</lastmod> <priority>0.9</priority> </url> </urlset>
图片站点地图
以下代码将生成以下XML
$url1 = new UrlDOMElement(); $url1->setloc('https://example.com/sample1.html'); $image = new ImageDOMElement(); $image->setLoc('https://example.com/image.jpg'); $photo = new ImageDOMElement(); $photo->setLoc('https://example.com/photo.jpg'); $url1->setImages([$image, $photo]); $url2 = new UrlDOMElement(); $url2->setloc('https://example.com/sample2.html'); $picture = new ImageDOMElement(); $picture->setLoc('https://example.com/picture.jpg'); $url2->setImages([$picture]); $urlSetDOMElement = new UrlsetDOMElement(); $urlSetDOMElement->setUrls([$url1, $url2]); $DOMElements = [$urlSetDOMElement]; $generator = new BasicGenerator(); $generator->setDOMElements($DOMElements);
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"> <url> <loc>https://example.com/sample1.html</loc> <image:image> <image:loc>https://example.com/image.jpg</image:loc> </image:image> <image:image> <image:loc>https://example.com/photo.jpg</image:loc> </image:image> </url> <url> <loc>https://example.com/sample2.html</loc> <image:image> <image:loc>https://example.com/picture.jpg</image:loc> </image:image> </url> </urlset>
站点地图索引
$sitemap1 = new SitemapDOMElement(); $sitemap1->setLoc('https://www.example.com/sitemap1.xml.gz'); $sitemap2 = new SitemapDOMElement(); $sitemap2->setLoc('https://www.example.com/sitemap2.xml.gz'); $sitemapIndexDOMElement = new SitemapIndexDOMElement(); $sitemapIndexDOMElement->setSitemaps([$sitemap1, $sitemap2]); $DOMElements = [$sitemapIndexDOMElement]; $generator = new BasicGenerator(); $generator->setDOMElements($DOMElements); $xml = $generator->generate();
<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap> <loc>https://www.example.com/sitemap1.xml.gz</loc> </sitemap> <sitemap> <loc>https://www.example.com/sitemap2.xml.gz</loc> </sitemap> </sitemapindex>