first236108 / sitemap
PHP XML 站点地图生成
5.1.6
2019-08-20 08:41 UTC
Requires
- php: >=7.1
Requires (Dev)
README
用于生成 XML 站点地图的工具。通过 SitemapBundle 与 Symfony 集成。
安装
composer require "thepixeldeveloper/sitemap"
基本用法
生成典型的 (<urlset>) 站点地图。
<?php declare(strict_types=1); use Thepixeldeveloper\Sitemap\Urlset; use Thepixeldeveloper\Sitemap\Url; use Thepixeldeveloper\Sitemap\Drivers\XmlWriterDriver; $url = new Url($loc); $url->setLastMod($lastMod); $url->setChangeFreq($changeFreq); $url->setPriority($priority); $urlset = new Urlset(); $urlset->add($url); $driver = new XmlWriterDriver(); $urlset->accept($driver); echo $driver->output();
生成父 (<sitemapindex>) 站点地图。
<?php declare(strict_types=1); use Thepixeldeveloper\Sitemap\SitemapIndex; use Thepixeldeveloper\Sitemap\Sitemap; use Thepixeldeveloper\Sitemap\Drivers\XmlWriterDriver; // Sitemap entry. $url = new Sitemap($loc); $url->setLastMod($lastMod); // Add it to a collection. $urlset = new SitemapIndex(); $urlset->add($url); $driver = new XmlWriterDriver(); $urlset->accept($driver); echo $driver->output();
扩展
以下扩展得到支持: Image、Link、Mobile、News 和 Video。它们的工作方式如下(以图片为例)
<?php declare(strict_types=1); use Thepixeldeveloper\Sitemap\Urlset; use Thepixeldeveloper\Sitemap\Url; use Thepixeldeveloper\Sitemap\Extensions\Image; $url = new Url($loc); $url->setLastMod($lastMod); $url->setChangeFreq($changeFreq); $url->setPriority($priority); $image = new Image('https://image-location.com'); $url->addExtension($image); ...
高级用法
处理指令
您可以在输出上添加以下处理指令。
<?php declare(strict_types=1); use Thepixeldeveloper\Sitemap\Drivers\XmlWriterDriver; $driver = new XmlWriterDriver(); $driver->addProcessingInstructions('xml-stylesheet', 'type="text/xsl" href="/path/to/xslt/main-sitemap.xsl"');
这将在文档开始前添加。
<?xml-stylesheet type="text/xsl" href="/path/to/xslt/main-sitemap.xsl"?>
注释
注释对记录信息如文件创建时间很有用。
<?php declare(strict_types=1); use Thepixeldeveloper\Sitemap\Drivers\XmlWriterDriver; $date = date('Y-m-d H:i:s'); $driver = new XmlWriterDriver(); $driver->addComment('This XML file was written on ' . $date . '. Bye!');
这将显示出来。
<?xml version="1.0" encoding="UTF-8"?> <!--This XML file was written on 2018-06-24 15:57:23. Bye!-->
中文补充
增加百度蜘蛛专用协议
use Thepixeldeveloper\Sitemap\Urlset; use Thepixeldeveloper\Sitemap\Url; use Thepixeldeveloper\Sitemap\Extensions\Mobile; use Thepixeldeveloper\Sitemap\Drivers\XmlWriterDriver; $url = new Url($loc); $url->setLastMod($lastMod); $url->setChangeFreq($changeFreq); $url->setPriority($priority); $mobile = new Mobile(); $mobile->setType('pc,mobile'); $url->addExtension($mobile); $urlset = new Urlset(); $urlset->add($url); $driver = new XmlWriterDriver(); $urlset->accept($driver); echo $driver->output();
输出示例
<?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://w ww.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="http://www.baidu. com/schemas/sitemap-mobile/1/"> <url> <loc>http://baidu.com</loc> <mobile:mobile type="pc,mobile"/> </url> </urlset>