千家信息网

如何使用php生成sitemap

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍了如何使用php生成sitemap,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。class SiteMapContro
千家信息网最后更新 2025年02月02日如何使用php生成sitemap

这篇文章主要介绍了如何使用php生成sitemap,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

class SiteMapController extends Controller {    /**     * ==============================================XML 格式===========================================================                                                        http://www.yoursite.com/yoursite.html                2009-12-14                daily                0.8                                http://www.yoursite.com/yoursite2.html        2010-05-01        daily        0.8                     */    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 = "\n";        $xmlTemplate .= "\n";        foreach ($allUrlData as $val){            $xmlTemplate .= "\n";            if(mb_strpos($val['url'],'&') !== false){                $val['url'] = str_replace('&','&',$val['url']);            }            $xmlTemplate .= "".$val['url']."\n";            $xmlTemplate .= "".date('Y-m-d')."\n";            $xmlTemplate .= "daily\n";            $xmlTemplate .= "".$val['weight']."\n";            $xmlTemplate .= "\n";        }        $xmlTemplate .= "\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 = "\n";        $xmlTemplate .= "\n";        $xmlTemplate .= "\n";        $xmlTemplate .= "\n";        $xmlTemplate .= "\n";        $xmlTemplate .= "\n";        $xmlTemplate .= "\n";        $xmlTemplate .= "\n";        $xmlTemplate .= "
    \n"; foreach ($allUrlData as $val){ $xmlTemplate .= "
  1. ".$val['name']."
  2. \n"; } $xmlTemplate .= "
\n"; $xmlTemplate .= "\n"; $siteMapXML = fopen("sitemap.html", "w+") or die("无法写入sitemap.html"); fwrite($siteMapXML, $xmlTemplate); fclose($siteMapXML); }}

感谢你能够认真阅读完这篇文章,希望小编分享的"如何使用php生成sitemap"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0