![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 42 Dołączył: 8.04.2005 Skąd: Mława Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Przedstawiam klasę PHP generującą mapy stron zgodne z protokołem Sitemap 0.90. Założeniem była 100% zgodność ze specyfikacją oraz maksymalna możliwa prostota. Cechy klasy:
Przykład wygenerowanej mapy: http://wydluz.net/sitemap.xml Download i przykłady użycia w języku angielskim: http://www.phpclasses.org/browse/package/5838.html Przykłady użycia i opis w języku polskim: http://antczak.org/2009/12/sitemap-generat...ie-mapy-strony/ Ten post edytował korro 11.12.2009, 10:15:04 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 10.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dodałem sobie do cron'a by odpalał się o 00:00, podpiąłem klase pod mojego cms'a, w którym mam w bazie zapisywane ostatnie modyfikacje dla rekordów, więc wstawiam unix timestamp do date("c", wartosc_time_z_bazy);.
I wprowadziłem małą zmianę, dodałem: Kod 109>> private $sitemapFullURLGZ; 224>> if ($this->createGZipFile){ $this->sitemapFullURLGZ = $this->baseURL.$this->sitemapFileName.".gz"; } $this->sitemapFullURL = $this->baseURL.$this->sitemapFileName; 268>> public function updateRobots() { if (!isset($this->sitemaps)) throw new BadMethodCallException("To update robots.txt, call createSitemap function first."); $sampleRobotsFile = "User-agent: *\nAllow: /"; if (file_exists($this->basePath.$this->robotsFileName)) { $robotsFile = explode("\n", file_get_contents($this->basePath.$this->robotsFileName)); $robotsFileContent = ""; foreach($robotsFile as $key=>$value) { $value = trim($value); if(substr($value, 0, 8) == 'Sitemap:') unset($robotsFile[$key]); else $robotsFileContent .= $value."\n"; } $robotsFileContent .= "Sitemap: " . $this->sitemapFullURL; if ($this->createGZipFile && !isset($this->sitemapIndex)){ $robotsFileContent .= "\nSitemap: ".$this->sitemapFullURLGZ; } file_put_contents($this->basePath.$this->robotsFileName,$robotsFileContent); } else { $sampleRobotsFile = $sampleRobotsFile."\n\nSitemap: ".$this->sitemapFullURL; if ($this->createGZipFile && !isset($this->sitemapIndex)){ $sampleRobotsFile .= "\nSitemap: ".$this->sitemapFullURLGZ; } file_put_contents($this->basePath.$this->robotsFileName, $sampleRobotsFile); } } Bo w pliku robots robiło pierwszą nazwę pliku mapy z rozszerzeniem .gz i pod nią drugą z .gz.gz. Kod Sitemap: http://192.168.0.2/strona/xml/sitemap.xml.gz Sitemap: http://192.168.0.2/strona/xml/sitemap.xml.gz.gz Teraz już nie ma tego problemu. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 05:21 |