Script PHP per Generare una Sitemap Dinamica

In questo articolo scopriremo come creare, tramite PHP, una sitemap in XML che si auto-aggiorni traendo i dati relativi agli update dal database del portale relativo. Per trarre dati da un database erendere la sitemap aggiornabile dinamicamente, dobbiamocreare un nuovo file php (che chiameremo sitemap.php) con unrecordset che ci aiuterà a muoverci tra i dati deldatabase. Il tutto dovrà esser integrato dopo la tag"urlset" e finire prima dell'ultimo"url".

Generare una sitemap dinamica: la logica di base

Vediamo nella pratica: ' . $row['ID']; $lastmod = ( $row['date_updated'] ) ? $row['date_updated'] : $row['date_added']; $priority = 0.5; $changefreq = 'monthly'; ?>

Da notare che abbiamo impostato a 0.5 la priorità diciascuna pagina che linka ad un singolo articolo, dal momento che queste, disolito, sono le meno aggiornate (una volta che un articolo è pubblicato è difficile che la pagina relativa subisca modifiche). Per il "lastomd" abbiamo usatol' ultima data nella quale l' articolo è stato modificato, e se ciò non è mai avvenuto, ladata di quando è stato aggiunto al database. Dobbiamo poi effettuare alcuni controlli sulle stringhe, per renderle compatibili all' XHTML: function do_xhtml ( $string ) { $string = stripslashes ( $string ); $string = str_replace ( "'" , "'" , $string ); $string = str_replace ( '"', '"', $string ); $string = str_replace ( '?', '-', $string ); $string = str_replace ( '?', ''', $string ); $string = str_replace ( '?', '', $string ); $string = str_replace ( '?', '', $string ); $string = str_replace ( '`', '', $string ); return $string;}

Considerazioni sull'aggiornamento dinamico

Insomma, come potete vedere con pochi semplici accorgimenti, e tutto sommato poche linee di codice, siamo in grado di crearci una sitemap auto-aggiornabile, senza dover ricorrere a servizi di terze parti.

Prima di lasciarvi, un piccolo accorgimento. Nel caso in cui il nostro portale sia di grandi dimensioni, e la sitemap debba magari contenere migliaia di links, una sola sitemap non può bastare; Google permette però di risolvere il problema: bisogna creare una sitemap principale che linki ad altri files XML. In poche parole ci saranno più sitemaps, ciascuna relativa ad una determinata sezione del portale, ed una principale, in grado di richiamarle. Ecco in PHP come creare la sitemap che ne inglobi altre:

' . Quando risulta necessario creare una sitemap dinamica?

bhè l’esempio più evidente è quando creiamo un nostro cms o sistema di gestione in generale. Se invece avete creato un vostro sito dinamico in PHP il cruccio della sitemap sarà presto uno dei vostri problemi.

01. 02. Come vedete, grazie a header di php creo l’intestazione del file (XML). NOTA IMPORTANTE: Header() è una funzione molto delicata di PHP, assicuratevi di non lasciare spazi vuoti nel codice prima di altrimenti potrebbe dare errore. exit ('

Errore mentre recuperavo i dati' . mysql_error() . Ovviamente $data è una variabile che contiene la data recuperata dalla vostra tabella, $var1 e $var2 sono altre due variabili ricostruite dalla vostra tabella necessarie per costruire i link agli articoli. In questo modo abbiamo scritto la sitemap che prenderà tutti i valori presenti nella vostra tabella sotto forma di documento XML valido come sitemap.

03. In questo modo sia gli articoli statici che la home avranno sempre la data di oggi come ultima modifica.

04. Molti di voi staranno dicendo: ma sei pazzo? Si tratta di una regola di mod_rewrite che in pratica trasforma il file da sitemap.php a sitemap.XML. Provate ora a scrivere nel browser tuosito.it/sitemap.xml ed eccovi servita la vostra sitemap dinamica trasformata in XML pronta per essere inviata a Google! Ovviamente ogni volta che aggiungerete o modificherete un articolo del database la sitemap agirà di conseguenza. A lunedì e buon week end!! (ovviamente condividete e commentate).

generateSitemap.php file is a maintenance script to generate a sitemap for a MediaWiki installation. By default, the script generates a sitemap index file and one gzip-compressed sitemap for each namespace that has content. The file system path to save to, e.g sitemap/. What site identifier to use for the wiki, defaults to $wgDBname. If specified, gets prefixed to the filenames in the sitemap index. This is needed because some search engines like Google require absolute URLs in sitemaps. Before MediaWiki 1.32.0 this parameter should contain the protocol and host name. However, since MediaWiki 1.32.0 the contents of this parameter will be appended to the --server parameter, thus it must neither contain protocol nor hostname. Whether or not to compress the sitemap files. If this option is added redirects are skipped and thus not listed within the sitemap. This is recommended since Google can complain about redirects. To create a sitemap for a wiki, first (in $IP, i.e. This will create a sitemap index stored at /path/to/examplecom/sitemap/sitemap-index-example.com.org.xml which points to a compressed XML file for each namespace, e.g. You will then need to submit the link for the sitemap index to the crawling site (eg Yandex or Google), i.e. $wgSitemapNamespaces: Array of namespaces to generate a Google sitemap for, or false if one is to be generated for all namespaces. $wgSitemapNamespacesPriorities (deprecated): Custom namespace priorities for sitemaps. This should be a map of namespace IDs to priority.

noimgs

tags: #script #php #per #generare #sitemap