首页 > 作文

PHP生成sitemap.xml地图函数

更新时间:2023-04-06 09:33:07 阅读: 评论:0

复制代码 代码如下:

<?php

/**

* 网站地图更新控制器

*

* @author garbin

* @usage none

*/

class sitemapapp extends frontendapp

{

function __construct()

{

$this->sitemapapp();

}

function sitemapapp()

{

parent::__construct();

$this->_google_sitemmap_file = root_path . ‘/data/google_sitemmap.xml’;

}

function index()

{

if (!conf::get(‘sitemap_enabled’))

{

return;

}

$from = empty($_get[‘from’]) ? ‘google’ : trim($_get[‘from’]);

switch ($from)

{

ca ‘google’:

$this->_output_google_sitemap();

break;

}

}

/**

* 输出google sitemap

*

* @author garbin

* @return void

*/

function _output_google_sitemap()

{

header(“content-type: application/xml”);

echo $this->_get_google_sitemap();

}

/**

* 获取google sitemap

*

* @author garbin

* @return string

*/

function _get_google_sitemap()

{

$sitemap = “”;

if ($this->_google_sitemap_expired())

{

/* 已过期,重新生成 */

/* 获取有更新的项目 */

$updated_items = $this->_get_updated_items($this->_get_google_sitemap_lastupdate());

/* 重建sitemap */

$sitemap = $this->_build_google_sitemap($updated_items);

/* 写入文件 */

$this->_write_google_sitemap($sitemap);

}

el

{

/* 直接返回旧的sitem有相ap */

$sitemap = file_get_contents($this->_google_sitemmap_file);

}

return $sitemap;

}

/**

* 判断google sitemap是否过期

*

* @author garbin

* @return boolean

*/

function _google_sitemap_expired()

{

if (!is_file($this->_google_sitemmap_file))

{

return true;

}

$frequency = conf::get(‘sitemap_frequency’) * 3600;

$filemtime = $this->_get_google_sitemap_lastupdate();

return (time() >= $filemtime + $frequency);

}

/**

* 获取上次更新日期

*

* @author garbin

* @return int

*/

function _get_google_sitemap_lastupdate()

{

return is_file($this->_google_sitemmap_file) ? filemtime($this->_google_sitemmap_file) : 0;

}

/**

* 获取已更新的项目

*

* @author garbin

* @return array

*/

function _get_updated_items($timeline = 0)

{

$timeline && $timeline -= date(‘z’);

$limit = 5000;

$result = array();

/* 更新的店铺 */

$model_store =& m(‘store’);

$updated_store = $model_store->find(array(

‘fields’ => ‘store_id, add_time’,

‘conditions’ => “add_time >= {$timeline} and state=” . store_open,

‘limit’ => “0, {$limit}”,

));

if (!empty($updated_store))

{

foreach ($updated_store as $_store_id => $_v)

{

$result[] = array(

‘url’ => site_url . ‘/index.php?app=store&id=’ . $_store_id,

‘lastmod’ => date(“y-m-d”, $_v[‘add_time’]),

‘changefreq’=> ‘daily’,
婴儿大脑发育
‘priority’ => ‘1’,

);

}

}

/* 更新的文章 */

$model_article =& m(‘article’);

$updated_article = $model_article->find(array(

‘fields’ => ‘article_id, add_time’,

‘conditions’=> “add_time >= {$timeline} and if_show=1”,

‘limit’ => “0, {$limit}”,

));

if (!empty($updated_article))

{

foreach ($updated_article as $_article_id => $_v)

{

$result[] = array(

‘url’ => site_url . ‘/index.php?app=article&act=view&article_id=’ . $_article_id,

‘lastmod’ => date(“y-m-d”, $_v海洋油气工程[‘add_time’]),

‘changefreq’=> ‘daily’we的宾格是什么,

‘priority’ => ‘0.8’,

);

}

}

/* 更新的商品 */

$model_goods =& m(‘goods’);

$updated_goods = $model_goods->find(array(
元方
‘fields’ => ‘goods_id, last_update’,

‘conditions’ => “last_update >= {$timeline} and if_show=1 and clod=0”,

‘limit’ => “0, {$limit}”,

));

if (!empty($updated_goods))

{

foreach ($updated_goods as $_goods_id => $_v)

{

$result[] = array(

‘url’ => site_url . ‘/index.php?app=goods&id=’ . $_goods_id,

‘lastmod’ => date(“y-m-d”, $_v[‘last_update’]),

‘changefreq’=> ‘daily’,

‘priority’ => ‘0.8’,

);

}

}

return $result;

}

/**

* 生成google sitemap

*

* @author garbin

* @param array $items

* @return string

*/

function _build_google_sitemap($items)

{

$sitemap = “<?xml version=\”1.0\” encoding=\”utf-8\”?>\r\n<urlt xmlns=\”http://www.sitemaps.org/schemas/sitemap/0.9\”>\r\n”;

$sitemap .= ” <url>\r\n <loc>” . htmlentities(site_url, ent_quotes) . “</loc>\r\n <lastmod>” . date(‘y-m-d’, gmtime()) . “</lastmod>\r\n <changefreq>always</changefreq>\r\n <priority>1</priority>\r\n </url>”;

if (!empty($items))

{

foreach ($items as $item)

{

$sitemap .= “\r\n <url>\r\n <loc>” . htmlentities($item[‘url’], ent_quotes) . “</loc>\r\n <lastmod>{$item[‘lastmod’]}</lastmod>\r\n <changefreq>{$item[‘changefreq’]}</changefreq>\r\n <priority>{$item[‘priority’]}</priority>\r\n </url>”;

}

}

$sitemap .= “\r\n</urlt>”;

return $sitemap;

}

/**

* 写入google sitemap文件

*

* @author garbin

* @param string $sitemap

* @return void

*/

function _write_google_sitemap($sitemap)

{

file_put_contents($this->_google_sitemmap_file, $sitemap);

}

}

?>

本文发布于:2023-04-06 09:33:03,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/853ea076e5dffa5d46e3ea29ac3672a5.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:PHP生成sitemap.xml地图函数.doc

本文 PDF 下载地址:PHP生成sitemap.xml地图函数.pdf

标签:代码   文件   项目   油气
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图