糯米文學吧

位置:首頁 > 計算機 > php語言

php自動生成sitemap地圖的代碼大綱

php語言1.45W

如何生成sitemap地圖呢?本文分享一例php代碼,用於自動動態生成最新的`sitemap地圖文件,並通知google網站地圖的更新,感興趣的朋友參考下吧。

php自動生成sitemap地圖的代碼大綱

內容:

php自動生成sitemap地圖

例子,:主要生成sitemap的類。

代碼:

複製代碼 代碼示例:

<?php

// sitemap generator class

class Sitemap

{

// constructor receives the list of URLs to include in the sitemap

function Sitemap($items = array())

{

$this->_items = $items;

}

// add a new sitemap item

function addItem($url,

$lastmod = ”,

$changefreq = ”,

$priority = ”,

$additional_fields = array())

{

$this->_items[] = array_merge(array(‘loc’ => $url,

‘lastmod’ => $lastmod,

‘changefreq’ => $changefreq,

‘priority’ => $priority),

$additional_fields);

}

// get Google sitemap

function getGoogle()

{

ob_start();

header(‘Content-type: text/xml’);

echo ‘<?xml version=”1.0″ encoding=”UTF-8″?>’;

echo ‘<urlset xmlns=”″

xmlns:xsi=””

xsi:schemaLocation=”

”>’;

foreach ($this->_items as $i)

{

echo ‘<url>’;

foreach ($i as $index => $_i)

{

if (!$_i) continue;

echo “<$index>” . $this->_escapeXML($_i) . “</$index>”;

}

echo ‘</url>’;

}

echo ‘</urlset>’;

return ob_get_clean();

}

// escape string characters for inclusion in XML structure

function _escapeXML($str)

{

$translation = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES);

foreach ($translation as $key => $value)

{

$translation[$key] = ‘&#’ . ord($key) . ‘;’;

}

$translation[chr(38)] = ‘&’;

return preg_replace(“/&(?![A-Za-z]{0,4}w{2,3};|#[0-9]{2,3};)/”,”&#38;” ,

strtr($str, $translation));

}

}

?>

:調用,具體實現sitemap。

複製代碼 代碼示例:

<?php

// redirect requests to dynamic to their keyword rich versions

require_once ‘/’;

define(‘SITE_DOMAIN’, ‘’);

// create the Sitemap object

$s = new Sitemap();

// add sitemap items

$s->addItem(SITE_DOMAIN);

$s->addItem(SITE_DOMAIN.”/”);

$s->addItem(SITE_DOMAIN.”/”);

//連接數據庫,生成URL並通過條用$s->addItem()加入到sitemap中。

// output sitemap

if (isset($_GET['target']))

{

// generate Google sitemap

if (($target = $_GET['target']) == ‘google’)

{

echo $s->getGoogle();

}

}

?>