• 自动生成百度小程序sitemap.txt文件路径


        因为业务需要,需要在目前项目上开发一个百度小程序,百度智能小程序上线了,但是内容每天得推送,不可能一个小程序路径一个推送吧,因为小程序路径和项目路径不一致。

    因为项目是用ThinkPHP开发的,在此附上自动输出sitemap.txt代码

       

    <?php
    namespace appindexcontroller;
    use thinkRequest;
    use thinkResponse;
    use mipMip;
    class Index extends Mip
    {
        public function index()
        {
            if ($this->domainSettingsInfo && $this->domainSettingsInfo['diySiteName']) {
                $this->assign('mipTitle',$this->domainSettingsInfo['diySiteName']);
            } else {
                $this->assign('mipTitle',$this->mipInfo['siteName'].$this->mipInfo['indexTitle']);
            }
          
            return $this->mipView('index/index');
        }
    
       function sitemap() {
            $count = model('apparticlemodelArticles')->getCount(0);
            $tagsCount = db('Tags')->count();
            $pageNum = ceil($count / 200)+1;
            $tagPageNum = ceil($tagsCount / 200)+1;
            $sitemap = '<?xml version="1.0" encoding="utf-8"?>';
            $sitemap .= '<sitemapindex>';
            for ($i=1; $i < $pageNum; $i++) {
            $sitemap .= '<sitemap>';
                $sitemap .= '<loc>' . $this->domain . '/xml/' . $i . '.xml' . '</loc>';
                $sitemap .= '<lastmod>' . date("Y-m-d") . '</lastmod>';
            $sitemap .= '</sitemap>';
            }
            for ($i=1; $i < $tagPageNum; $i++) {
            $sitemap .= '<sitemap>';
                $sitemap .= '<loc>' . $this->domain . '/tagXml/' . $i . '.xml' . '</loc>';
                $sitemap .= '<lastmod>' . date("Y-m-d") . '</lastmod>';
            $sitemap .= '</sitemap>';
            }
            $sitemap .= '</sitemapindex>';
            return Response::create($sitemap)->contentType('text/xml');;
        }
        
        function xml() {
            $page = input('param.id');
            $page = $page ? $page : 1;
            $itemList = model('apparticlemodelArticles')->getItemPushList('', $page, 200, 'publish_time', 'desc');
    
            $xml = '<?xml version="1.0" encoding="utf-8"?>';
            $xml .= '<urlset>';
            if ($page == 1) {
                $xml .= '<url>';
                $xml .= '<loc>' . $this->domain . '/' . '</loc>';
                $xml .= '<lastmod>' . date("Y-m-d") . '</lastmod>';
                $xml .= '<changefreq>daily</changefreq>';
                $xml .= '<priority>1.0</priority>';
                $xml .= '</url>';
                if ($this->itemCategoryList = model('apparticlemodelArticles')->getCategory()) {
                    foreach($this->itemCategoryList as $k => $v) {
                        $xml .= '<url>';
                        $xml .= '<loc>' . $v["url"] . '</loc>';
                        $xml .= '<lastmod>' . date("Y-m-d") . '</lastmod>';
                        $xml .= '<changefreq>daily</changefreq>';
                        $xml .= '<priority>0.9</priority>';
                        $xml .= '</url>';
                    }
                }
            }
            foreach($itemList as $k => $v) {
                $xml .= '<url>';
                $xml .= '<loc>' . $v["url"] . '</loc>';
                $xml .= '<lastmod>' . date("Y-m-d", $v["publish_time"]) . '</lastmod>';
                $xml .= '<changefreq>daily</changefreq>';
                $xml .= '<priority>0.6</priority>';
                $xml .= '</url>';
            }
            $xml .= '</urlset>';
            return Response::create($xml)->contentType('text/xml');;
        }
    
    
        function tagXml() {
            $page = input('param.id');
            $page = $page ? $page : 1;
            $xml = '<?xml version="1.0" encoding="utf-8"?>';
            $xml .= '<urlset>';
            $tagsList = db($this->tags)->page($page,200)->select();
            if ($tagsList) {
                foreach ($tagsList as $key => $val) {
                    if ($val['url_name']) {
                        $tagsList[$key]['url'] = $this->domain . '/' . $this->mipInfo['tagModelUrl'] .'/' . $val['url_name'] . '/';
                    } else {
                        $tagsList[$key]['url'] = $this->domain . '/' . $this->mipInfo['tagModelUrl'] .'/' . $val['id'] . '/';
                    }
                    $tagsList[$key]['time'] = $val['add_time'] ? date("Y-m-d", $val["add_time"]) : date("Y-m-d");
                }
                foreach ($tagsList as $key => $val) {
                    $xml .= '<url>';
                    $xml .= '<loc>' . $val["url"] . '</loc>';
                    $xml .= '<lastmod>' . $tagsList[$key]['time'] . '</lastmod>';
                    $xml .= '<changefreq>daily</changefreq>';
                    $xml .= '<priority>0.9</priority>';
                    $xml .= '</url>';
                }
            }
            $xml .= '</urlset>';
            return Response::create($xml)->contentType('text/xml');;
        }
        
         function baiduSitemapPc() {
            $count = model('apparticlemodelArticles')->getCount(0);
            $pageNum = ceil($count / 200)+1;
            $sitemap = '<?xml version="1.0" encoding="utf-8"?>';
            $sitemap .= '<sitemapindex>';
            for ($i=1; $i < $pageNum; $i++) {
            $sitemap .= '<sitemap>';
                $sitemap .= '<loc>' . $this->domain . '/pcXml/' . $i . '.xml' . '</loc>';
                $sitemap .= '<lastmod>' . date("Y-m-d") . '</lastmod>';
            $sitemap .= '</sitemap>';
            }
            $sitemap .= '</sitemapindex>';
            return Response::create($sitemap)->contentType('text/xml');;
        }
        function pcXml() {
            $page = input('param.id');
            $page = $page ? $page : 1;
            $itemList = model('apparticlemodelArticles')->getItemPushList('', $page, 200, 'publish_time', 'desc');
    
            $xml = '<?xml version="1.0" encoding="utf-8"?>';
            $xml .= '<urlset>';
            foreach($itemList as $k => $v) {
                $xml .= '<url>';
                $xml .= '<loc>' . $v["url"] . '</loc>';
                $xml .= '<lastmod>' . date("Y-m-d", $v["publish_time"]) . '</lastmod>';
                $xml .= '<changefreq>daily</changefreq>';
                $xml .= '<priority>0.6</priority>';
                $xml .= '<data>';
                $xml .= '<display>';
                $xml .= '<title>' . $v['title'] . '</title>';
                $xml .= '</display>';
                $xml .= '</data>';
                $xml .= '</url>';
            }
            $xml .= '</urlset>';
            return Response::create($xml)->contentType('text/xml');;
        }
      //百度小程序输出
       function badiuSmart() {
          $page = input('param.id');
            $page = $page ? $page : 1;
            $itemList = model('apparticlemodelArticles')->getItemPushList('', $page, 3000, 'publish_time', 'desc');
            //添加小程序路径
            $smarturl="pages/articleDetail/articleDetail?uuid=";
            foreach($itemList as $k => $v) {
                $smart .=$smarturl. $v["uuid"]."
    ";
            }
            return Response::create($smart)->contentType('text/html');;
        }
        
        
    }
    

      

  • 相关阅读:
    JDBC 详解
    Class.forName() 详解
    23种设计模式
    MVC 模式
    Ant 打包 问题
    Jedis操作Redis--SortedSet类型 (会自然排序)
    在JSP中常见问题,防止SpringMVC拦截器拦截js等静态资源文件的解决方案
    在idea中使用@Test注解报错的解决方案
    判断返回的对象是否为空
    使用标准的日期格式化过程
  • 原文地址:https://www.cnblogs.com/68xi/p/11193023.html
Copyright © 2020-2023  润新知