elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Google SiteMap personalizado con PHP y MySQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Google SiteMap personalizado con PHP y MySQL  (Leído 3,572 veces)
дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Google SiteMap personalizado con PHP y MySQL
« en: 3 Marzo 2007, 07:43 am »

Google Sitemap con PHP y MySQL

El archivo que Google tiene que interpretar es xml, muy simple y fácil de entender, su nombre es Sitemap.php y su estructura es la siguiente:

Código:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
   <url>
      <loc>http://www.yoursite.com/</loc>
      <lastmod>2005-01-01</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.8</priority>
   </url>
   <url>
 <loc>http://www.yoursite.com/catalog?item=12&amp;desc=vacation_hawaii</loc>
      <changefreq>weekly</changefreq>
   </url>
   <url>
 <loc>http://www.yoursite.com/catalog?item=73&amp;desc=vacation_new_zealand</loc>
      <lastmod>2004-12-23</lastmod>
      <changefreq>weekly</changefreq>
   </url>
</urlset>

Como ven, se trata de un fichero con muy pocas etiquetas, las cuales se repiten por cada página. La etiqueta principal es el tag urlset, padre de todas las demás, luego una etiqueta url, que es el padre de las demás etiquetas que identifican a cada página, dentro de esta encontramos las etiquetas loc (dirección url de la página), lastmod (última fecha de actualización), chanfreq (frecuencia con que se actualiza la página), priority (la prioridad de esa página con respecto a las demás). Debemos dejar en claro que sólo las etiquetas padres y la loc son obligatorias, las demás se recomiendan para optimizar la actualización de nuestras páginas, pero son opcionales.

Conociendo esta estructura, lo que debemos hacer es crear un fichero php, que a su vez nos cree el archivo "sitemap.xml" siguiendo las pautas mostradas.

En nuestro MySQL:

Código:
CREATE TABLE `sitemap` (
  `Id` int(6) NOT NULL auto_increment,
  `Url` varchar(255) collate latin1_general_ci NOT NULL,
  `Lastmod` date NOT NULL,
  `Changefreq` varchar(255) collate latin1_general_ci NOT NULL,
  `Priority` int(3) NOT NULL,
  PRIMARY KEY  (`Id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;

--
-- Volcar la base de datos para la tabla `sitemap`
--

INSERT INTO `sitemap` VALUES (1, 'codigosweb.net/index.php', '2007-03-03', 'always', 1);

Y nuestro SiteMap PHP:
Código:
<?php
//Codigo por codigosweb.net Ing_Amc

header('Content-Type: text/xml');//Indicamos que es un XML
function conectar($host, $user, $pass, $database){
$conectar = mysql_connect($host, $user, $pass) or die(mysql_error());
mysql_select_db($database,$conectar);
return $conectar;
}
$conexión=conectar("localhost","root","root","sitemap");
$sql = "SELECT * FROM `sitemap`";
$resultado = mysql_query($sql,$conexión);
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
  echo "<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">";
while ($row = mysql_fetch_row($resultado)){
echo "<url>\r\n
    <loc>http://".$row[1]."</loc>\r\n
    <lastmod>".$row[2]."</lastmod>\r\n
    <changefreq>".$row[3]."</changefreq>\r\n
    <priority>".$row[4]."</priority>\r\n
   </url>\r\n";
}
echo "</urlset>";
mysql_close($conexión);
?>

Fuente del texto: http://www.baluart.net/articulo.php?id_art=71
Script: By me.

Más info: https://www.google.com/webmasters/tools/docs/es/protocol.html

Saludos


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines