Опубликовано: 30.10.2017
Итак, как я и обещал, выкладываю статью по созданию карты сайта Sitemap.XML для поисковых систем с использованием DOM в PHP, а именно DOMDocument .
Класс DOMDocument в PHP позволяет обращаться к XML файлам и данным в XML формате, а так же создавать их. Он имеет ряд методов, которые будут нам полезны при создании Sitemap.XML .
Данный метод полностью основан на ООП , что позволяет легко улучшить или изменить для себя исходный код.
Данная статья посвящена именно генерации Sitemap.XML с помощью DOMDocument . Описание, что это такое вы можете найти на официальном сайте .
Наша группа занималась разработкой портала «VLG Navigator», представляющего собой Каталог организаций Волгограда с позиционированием на карте города.
Передо мной стояла задача — организовать возможность создавать Sitemap.XML из административного интерфейса. Все объекты в каталоге размещались администратором и, допустим, после добавления порядка 30 объектов в каталог необходимо было как можно быстрее оповестить о них поисковые системы.
В моем случае, каждый узел с URL в карте сайта был следующего типа:
<url> <loc>http://www.vlg-nav.ru/</loc> <lastmod>2008-07-24</lastmod> <changefreq>daily</changefreq> <priority>1.0</priority> </url>Каждый из узлов URL я решил хранить в соответствующем объекте. Для этого был написан класс SitemapUrl:
class SitemapUrl{ private $loc; private $lastmod; private $changefreq; private $priority; final function __construct($loc,$lastmod,$changefreq,$priority){ $this->loc = $loc; unset ($loc); $this->lastmod = $lastmod; unset ($lastmod); $this->changefreq = $changefreq; unset ($changefreq); $this->priority = $priority; unset ($priority); } final function getLoc(){ return $this->loc; } final function getLastmod(){ return $this->lastmod; } final function getChangefreq(){ return $this->changefreq; } final function getPriority(){ return $this->priority; } }Таким образом, в переменных $this->loc, $this->lastmod, $this->changefreq, $this->priority хранятся соответствующие значения элементов конкретного узла карты сайта.