温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用php生成sitemap

发布时间:2021-09-15 18:52:44 来源:亿速云 阅读:219 作者:小新 栏目:大数据

这篇文章主要介绍了如何使用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