bnbweb/back/includes/cls_google_sitemap.php
2023-06-28 04:27:57 +08:00

88 lines
2.3 KiB
PHP
Executable File

<?php
if (!defined('IN_ECS'))
{
die('Hacking attempt');
}
class google_sitemap
{
var $header = "<\x3Fxml version=\"1.0\" encoding=\"UTF-8\"\x3F>\n\t<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">";
var $charset = "UTF-8";
var $footer = "\t</urlset>\n";
var $items = array();
/**
* 增加一个新的子项
*@access public
*@param google_sitemap item $new_item
*/
function add_item($new_item)
{
$this->items[] = $new_item;
}
/**
* 生成XML文档
*@access public
*@param string $file_name 如果提供了文件名则生成文件,否则返回字符串.
*@return [void|string]
*/
function build( $file_name = null )
{
$map = $this->header . "\n";
foreach ($this->items AS $item)
{
$item->loc = htmlentities($item->loc, ENT_QUOTES);
$map .= "\t\t<url>\n\t\t\t<loc>$item->loc</loc>\n";
// lastmod
if ( !empty( $item->lastmod ) )
$map .= "\t\t\t<lastmod>$item->lastmod</lastmod>\n";
// changefreq
if ( !empty( $item->changefreq ) )
$map .= "\t\t\t<changefreq>$item->changefreq</changefreq>\n";
// priority
if ( !empty( $item->priority ) )
$map .= "\t\t\t<priority>$item->priority</priority>\n";
$map .= "\t\t</url>\n\n";
}
$map .= $this->footer . "\n";
if (!is_null($file_name))
{
return file_put_contents($file_name, $map);
}
else
{
return $map;
}
}
}
class google_sitemap_item
{
/**
*@access public
*@param string $loc 位置
*@param string $lastmod 日期格式 YYYY-MM-DD
*@param string $changefreq 更新频率的单位 (always, hourly, daily, weekly, monthly, yearly, never)
*@param string $priority 更新频率 0-1
*/
function google_sitemap_item($loc, $lastmod = '', $changefreq = '', $priority = '')
{
$this->loc = $loc;
$this->lastmod = $lastmod;
$this->changefreq = $changefreq;
$this->priority = $priority;
}
}
?>