中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用php生成sitemap

發布時間:2021-09-15 18:52:44 來源:億速云 閱讀:185 作者:小新 欄目:大數據

這篇文章主要介紹了如何使用php生成sitemap,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

class SiteMapController extends Controller {
    /**
     * ==============================================XML 格式===========================================================
        <?xml version="1.0" encoding="utf-8"?>
        <!-- XML文件需以utf-8編碼-->
        <urlset>
        <!--必填標簽-->
        <url>
        <!--必填標簽,這是具體某一個鏈接的定義入口,每一條數據都要用<url>和</url>包含在里面,這是必須的 -->
        <loc>http://www.yoursite.com/yoursite.html</loc>
        <!--必填,URL鏈接地址,長度不得超過256字節-->
        <lastmod>2009-12-14</lastmod>
        <!--可以不提交該標簽,用來指定該鏈接的最后更新時間-->
        <changefreq>daily</changefreq>
        <!--可以不提交該標簽,用這個標簽告訴此鏈接可能會出現的更新頻率 -->
        <priority>0.8</priority>
        <!--可以不提交該標簽,用來指定此鏈接相對于其他鏈接的優先權比值,此值定于0.0-1.0之間-->
        </url>
        <url>
        <loc>http://www.yoursite.com/yoursite2.html</loc>
        <lastmod>2010-05-01</lastmod>
        <changefreq>daily</changefreq>
        <priority>0.8</priority>
        </url>
        </urlset>
     */

    private function cateModel(){ return new Cate(); }
    private function articleModel(){ return new Article(); }


    /**
     *
     */
    public function createSiteMap(){
        $allUrlData = array_merge($this->mastUrl(),$this->getADList(),$this->getArticleList(),$this->getCateList());
//        prt(count($allUrlData));
        $allUrlData = array_unique($allUrlData, SORT_REGULAR);
//        prt(count($allUrlData));
        $this->createSiteMapXML($allUrlData);
//        $this->createSiteMapTxt($allUrlData);
        $this->createSiteMapHtml($allUrlData);
    }

    /**
     * @return array
     */
    private function mastUrl(){
        return [];
    }

    /**
     * 廣告數據
     */
    private function getADList(){
        $adPosList = $this->adModel()->adPosUrlList();
        $adInfoList = $this->adModel()->adInfoUrlList();
        $adUrlList =  array_merge($adPosList,$adInfoList);
        array_walk($adUrlList,function (&$val){ $val['weight'] = 0.8; });
        return $adUrlList;
    }

    /**
     * 文章數據
     */
    private function getArticleList(){
        $articleUrlList = $this->articleModel()->articleUrlList();
        $articleTagUrlList = $this->articleModel()->articleTagUrlList();
        $articleUrlList =  array_merge($articleUrlList,$articleTagUrlList);
        array_walk($articleUrlList,function (&$val){ $val['weight'] = 0.8; });
        return $articleUrlList;
    }

    /**
     * 欄目數據
     */
    private function getCateList(){
        $cateUrlList = $this->cateModel()->cateUrlList();
        array_walk($cateUrlList,function (&$val){ $val['weight'] = 0.8; });
        return $cateUrlList;
    }

    /**
     * @param $allUrlData
     */
    private function createSiteMapXML($allUrlData){
        if (!$allUrlData){return false;}
        $xmlTemplate = "<?xml version='1.0' encoding='utf-8'?>\n";
        $xmlTemplate .= "<urlset xmlns='http://www.sitemaps.org/schemas/sitemap/0.9'>\n";

        foreach ($allUrlData as $val){
            $xmlTemplate .= "<url>\n";
            if(mb_strpos($val['url'],'&') !== false){
                $val['url'] = str_replace('&','&amp;',$val['url']);
            }
            $xmlTemplate .= "<loc>".$val['url']."</loc>\n";
            $xmlTemplate .= "<lastmod>".date('Y-m-d')."</lastmod>\n";
            $xmlTemplate .= "<changefreq>daily</changefreq>\n";
            $xmlTemplate .= "<priority>".$val['weight']."</priority>\n";
            $xmlTemplate .= "</url>\n";
        }
        $xmlTemplate .= "</urlset>\n";

        $siteMapXML = fopen("sitemap.xml", "w+") or die("無法寫入sitemap.xml");
        fwrite($siteMapXML, $xmlTemplate);
        fclose($siteMapXML);
    }

    private function createSiteMapTxt($allUrlData){
        if (!$allUrlData){return false;}
        $txtTemplate = '';
        foreach ($allUrlData as $val){
            $txtTemplate .= $val['url']."\n";
        }

        $siteMapTxt = fopen("sitemap.txt", "w+") or die("無法寫入sitemap.txt");
        fwrite($siteMapTxt, chr(0xEF).chr(0xBB).chr(0xBF));
        fwrite($siteMapTxt, $txtTemplate);
        fclose($siteMapTxt);
    }

    private function createSiteMapHtml($allUrlData){
        if (!$allUrlData){return false;}
        $xmlTemplate = "<!DOCTYPE html>\n";
        $xmlTemplate .= "<html>\n";
        $xmlTemplate .= "<head>\n";
        $xmlTemplate .= "<meta charset='utf-8'/>\n";
        $xmlTemplate .= "<title></title>\n";
        $xmlTemplate .= "<style>a{color:rgb(0, 0, 238);font-size:13px;}</style>\n";
        $xmlTemplate .= "</head>\n";
        $xmlTemplate .= "<body>\n";
        $xmlTemplate .= "<ol>\n";

        foreach ($allUrlData as $val){
            $xmlTemplate .= "<li><a href='".$val['url']."'>".$val['name']."</a></li>\n";
        }
        $xmlTemplate .= "</ol>\n";
        $xmlTemplate .= "</html>\n";

        $siteMapXML = fopen("sitemap.html", "w+") or die("無法寫入sitemap.html");
        fwrite($siteMapXML, $xmlTemplate);
        fclose($siteMapXML);
    }
}

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何使用php生成sitemap”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

中宁县| 班戈县| 贺兰县| 霸州市| 松滋市| 顺昌县| 襄城县| 辉县市| 舟山市| 宜黄县| 喀喇沁旗| 翁源县| 正蓝旗| 通河县| 达日县| 阿城市| 宁乡县| 涪陵区| 都兰县| 拜城县| 墨玉县| 平山县| 高阳县| 新巴尔虎左旗| 连平县| 咸宁市| 保康县| 五华县| 茶陵县| 海盐县| 曲沃县| 天峻县| 河池市| 上犹县| 广宗县| 永登县| 额济纳旗| 应用必备| 汉阴县| 崇明县| 江北区|