<?php
class SiteMap {
private $pages = [ ];
private $file;
public function __construct ( $file=null ) {
$this->file = $file;
}
public function create () {
$str = $this->xmlHeader();
$str .= $this->getPages();
$str .= $this->xmlFooter();
$this->write2file( $this->file, $str );
}
private function xmlHeader () {
$str = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="sitemap.xsl"?>
<urlset 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"
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
XML;
return $str;
}
private function xmlFooter () {
$str = '
</urlset>
';
return $str;
}
private function getPages () {
for ( $i = 0; $i < count( $this->pages['url'] ); $i++ ) {
$str .= '
<url>
<loc>' . $this->pages['url'][$i] . '</loc>
<lastmod>' . date( 'Y-m-d' ) . 'T' . date( 'H:i:s' ) . '+00:00</lastmod>
<changefreq>' . $this->pages['frecvent'][$i] . '</changefreq>
<priority>' . $this->pages['priority'][$i] . '</priority>
</url>
';
}
return $str;
}
public function addPage ( $url, $frecvent = 'daily', $priority = 1.0 ) {
$this->pages['url'][] = $url;
$this->pages['frecvent'][] = $frecvent;
$this->pages['priority'][] = $priority;
}
public function write2file ( $fname, $string ) {
if ( $fname == null ) {
echo $string;
}
else {
@unlink( $fname );
@file_put_contents( $fname, $string );
}
}
}
|