Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sitemap generator - generowanie mapy strony, sitemap.xml sitemap-index.xml
korro
post
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:
  • Pełna zgodność z UTF-8
  • Wsparcie dla Sitemap index
  • Obsługa do 50,000,000 linków
  • Wsparcie dla plików robots.txt
  • Automatyczne powiadamianie wyszukiwarek: Google, Yahoo!, Ask i Bling
  • Wsparcie dla Yahoo App ID
  • Wsparcie dla GZip

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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
graczu
post
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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 05:21