/** * 網(wǎng)站地圖更新控制器 * * @author Garbin * @usage none */class SitemapApp extends FrontendApp{ function __construct() { $this->SitemapApp(); " /> 乳色吐息在线观看全集免费观看,久久精品视频免费,3D内射动漫同人资源在线观看

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP生成sitemap.xml地圖函數(shù)

復(fù)制代碼 代碼如下:
<?php

/**
 *    網(wǎng)站地圖更新控制器
 *
 *    @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)
        {
            case '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())
        {
            /* 已過(guò)期,重新生成 */

            /* 獲取有更新的項(xiàng)目 */
            $updated_items = $this->_get_updated_items($this->_get_google_sitemap_lastupdate());

            /* 重建sitemap */
            $sitemap = $this->_build_google_sitemap($updated_items);

            /* 寫(xiě)入文件 */
            $this->_write_google_sitemap($sitemap);
        }
        else
        {
            /* 直接返回舊的sitemap */
            $sitemap = file_get_contents($this->_google_sitemmap_file);
        }

        return $sitemap;
    }

    /**
     *    判斷Google sitemap是否過(guò)期
     *
     *    @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;
    }

    /**
     *    獲取已更新的項(xiàng)目
     *
     *    @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',
                    '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 closed=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<urlset 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</urlset>";

        return $sitemap;
    }

    /**
     *    寫(xiě)入Google sitemap文件
     *
     *    @author    Garbin
     *    @param     string $sitemap
     *    @return    void
     */
    function _write_google_sitemap($sitemap)
    {
        file_put_contents($this->_google_sitemmap_file, $sitemap);
    }
}

?>

php技術(shù)PHP生成sitemap.xml地圖函數(shù),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产午夜精品不卡观看 | jk制服喷水 | 亚洲免费网站观看视频 | 麻豆国产99在线中文 | 冰山高冷受被c到哭np双性 | 精品国产影院 | 日本粉嫩学生毛绒绒 | 香蕉人人超人人超碰超国产 | 制服国产欧美亚洲日韩 | 中国老太性色xxxxxhd | 厕所RXXX| 久久婷婷色一区二区三区 | 全免费A敌肛交毛片免费懂色AV | 99在线观看免费 | 成人免费一区二区无码视频 | 精品国产三级a | 秋霞伦理手机在线看片 | 97色伦久久视频在观看 | 国产精品久久久久久久久久影院 | 国产精品久久久久a影院 | 国产亚洲精品久久久久久无码网站 | SM调教贱屁股眼哭叫求饶H | 日本无码欧美激情在线视频 | 中文有码中文字幕免费视频 | 男人天堂黄色 | 久青草国产在视频在线观看 | 午夜不卡久久精品无码免费 | 无码射肉在线播放视频 | 好大好硬好爽好深好硬视频 | 美女脱光app | 无人区尖叫之夜美女姐姐视频 | 日本xxx在线观看免费播放 | 日本福利片午夜免费观着 | 午夜伦yy44880影院 | 亚洲中文字幕日本在线观看 | 日本熟妇乱妇熟色A片蜜桃 日本熟妇多毛XXXXX视频 | 十分钟免费看完整视频 | 强上轮流内射高NP男男 | 99久久精品国产免费 | 亚洲国产精品一区二区久久第 | 色爱AV综合区 |