您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何使用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('&','&',$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”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。