sitemap xml文件生成

sitemap xml生成方法 <?php /** * SitemapService.php. * * 生成sitemap */ class Sitemap { public $newLine = "\n"; public $indent = " "; public $xmlHeader = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; public $urlsetOpen = "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9 \">\n"; public $urlsetValue = ""; public $urlsetClose = "</urlset>\n"; public $rootUrl = ""; public function __construct($rootUrl = "https://www.xxx") { if (empty($rootUrl)) { $rootUrl = "https://www.xxx"; } $this->rootUrl = $rootUrl; } private function makeUrlString ($urlString) { return htmlentities($urlString, ENT_QUOTES|ENT_XML1, \'UTF-8\'); } /** * 返回格式: 2019-02-01T12:40:05+00:00 * 参数格式: 2019-02-01 12:40:05 * @param $dateTime * @return bool|string */ private function makeIso8601TimeStamp ($dateTime) { if (!$dateTime) { $dateTime = date(\'Y-m-d H:i:s\'); } if (is_numeric(substr($dateTime, 11, 1))) { $isoTS = substr($dateTime, 0, 10) ."T" .substr($dateTime, 11, 8) ."+00:00"; } else { $isoTS = substr($dateTime, 0, 10); } return $isoTS; } private function makeUrlTag ($url, $modifiedDateTime, $changeFrequency, $priority) { $newLine = $this->newLine; $indent = $this->indent; $urlOpen = "$indent<url>$newLine"; $urlClose = "$indent</url>$newLine"; $locOpen = "$indent$indent<loc>"; $locClose = "</loc>$newLine"; $lastmodOpen = "$indent$indent<lastmod>"; $lastmodClose = "</lastmod>$newLine"; $changefreqOpen = "$indent$indent<changefreq>"; $changefreqClose = "</changefreq>$newLine"; $priorityOpen = "$indent$indent<priority>"; $priorityClose = "</priority>$newLine"; $urlTag = $urlOpen; $urlValue = $locOpen .$this->makeUrlString($url) .$locClose; if ($modifiedDateTime) { $urlValue .= $lastmodOpen .$this->makeIso8601TimeStamp($modifiedDateTime) .$lastmodClose; } if ($changeFrequency) { $urlValue .= $changefreqOpen .$changeFrequency .$changefreqClose; } if ($priority) { $urlValue .= $priorityOpen .$priority .$priorityClose; } $urlTag .= $urlValue; $urlTag .= $urlClose; return $urlTag; } /** * 验证是否符合url格式 * url format: /xxx|lastmod|changefreq|priority * * @param $pageLine * @return bool */ private function validateEntry ($pageLine) { $page = explode("|", $pageLine); $url = trim($page[0]); $processLine = TRUE; if (substr($url, 0, 1) != "http://www.likecs.com/") { $processLine = FALSE; } return $processLine; } /** * 获取待生成的链接 * url format: /xxx|lastmod|changefreq|priority * * @return array */ private function getUrls() { $lastmod = date(\'Y-m-d H:i:s\'); $changefreq = "daily"; $priority_index = "1.0"; $priority_category = "0.8"; $priority_details = "0.5"; $pageList = []; $pageList[] = "/|$lastmod|$changefreq|$priority_index"; // 添加自己的网站url $pageList[] = "/ranking|$lastmod|$changefreq|$priority_category"; return $pageList; } /** * 生成sitemap文件 */ public function generate() { $pageList = $this->getUrls(); foreach($pageList as $pageLine) { $processLine = $this->validateEntry ($pageLine); $page = explode("|", $pageLine); $url = trim($page[0]); if ($processLine) { $this->urlsetValue .= $this->makeUrlTag ($this->rootUrl .$url, trim($page[1]), trim($page[2]), trim($page[3])); } } return $this->xmlHeader . $this->urlsetOpen . $this->urlsetValue . $this->urlsetClose; } } /** * 1. Sitemap 构造方法,默认的rootUrl 修改为待整理的网站域名 * 2. Sitemap getUrls方法,添加自己网站的url * 3. 调用Sitemap时,rootUrl的参数修改 */ $rootUrl = ""; $sitemap = new Sitemap($rootUrl); $xml_data = $sitemap->generate(); header(\'Content-type: application/xml; charset="utf-8"\'); echo $xml_data; 参考链接

谷歌帮助文档
sitemap xml格式
谷歌seo优化

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwfjg.html