home Foro de soporte Espacio WEB PHP
 
Como generar indice para Google Sitemaps en un Espacio WEB
#1 · ·

Hola. Lo que dejo a continuación es un codigo en PHP para generar un indice en XML para Google Sitemaps de misma manera que se generar o actuliza ese indice en el servicio de Blogs de miarroba.com (se implemento la semana pasada). Este se tiene que pegar en un editor de textos , se tiene que guardar con extención .php (no .txt) y se tiene que subir al directorio raiz del Espacio WEB.
Cuando cargamos la página nos pide una contraseña. Después de poner la contraseña correcta la página recorrera todos los archivos del Espacio WEB (incluyendo subdirectorios. Todos a partir del directorio que encuentre subido este archivo) e incluira los archivos con extenciones .htm , .html , .php y .txt si se selecciona.

<html>
<?php
$hname = "sitemap.xml";
$contase = "nuih";
/* Comienzo */
if (isset($_POST["qa"] == true) {
if ($_POST["qa"] == $contase) {
function j6($jx) {
$x = explode($jx,"/&quotGiño;
return $x[count($x) - 1];
}
function iii($tx) {
return str_replace("'", "&apos;", htmlspecialchars($tx));
}
$k = fopen($hname, "w+&quotGiño;
fwrite($k,"<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n&quotGiño;
fwrite($k,"<urlset xmlns=\"http://google.com/schemas/sitemap/0.84\">\r\n&quotGiño;
$nn = $_SERVER["SERVER_NAME"];
if (isset($_POST["ytx"] == true) {
$txxxxn = false;
if ($_POST["ytx"] == "y&quotGiño $$txxxxn = true;
} else {
$txxxxn = false;
}
fwrite($k,"<url>\r\n<loc>" . iii($nn) . "</loc>\r\n<priority>1.0</priority>\r\n</url>&quotGiño;
fe(".&quotGiño;
fwrite($k,"\r\n</urlset>&quotGiño;
fclose($k);
function fe($udir) {
global $ly, $nn, $k;
$g = dir($udir);
if ($udir != ".&quotGiño $udir .= "/";
if ($udir == ".&quotGiño $udir = "";
if ($g->handle === false) return;
while ($hl = $g->read()) {
if (is_dir($hl) === false) {
if ($txxxxn == true) {
$txxxxn = $hl;
} else {
$txxxxn = "i";
}
if ((strtolower(substr($hl, -4)) == ".htm" || strtolower(substr($hl, -5)) == ".html" || strtolower(substr($hl, -4)) == ".php" || strtolower(substr($hl, -4)) == ".txt&quotGiño && ($udir == "" && $hl != j6($_SERVER["PHP_SELF"]))) {
fwrite($k,"\r\n<url>\r\n<loc>" . iii($nn . "/" . $udir . $hl) . "</loc>&quotGiño;
fwrite($k,"\r\n<lastmod>" . iii(date("Y-m-d\\TH:i:s" . (intval(date("Z&quotGiño) >= 0 ? "+" : "-&quotGiño . str_pad(intval(date("Z&quotGiño) / 3600, 2, "0", STR_PAD_LEFT) . ":" . str_pad((intval(date("Z&quotGiño) % 3600) / 60, 2, "0", STR_PAD_LEFT) , filemtime($udir . $hl))) . "</lastmod>\r\n</url>&quotGiño;
}
} else {
if (strlen($hl) != substr_count($hl, ".&quotGiño) fe($udir . $hl);
}
}
$g->close();
}
?>
<head><title>Se genero/actualizo el indice</title></head>
<body>
<font face="Arial">Ahora que se genero/actualizo el indice hay que notificar a Google de esta acción<br>
Para eso haga clic en el boton de a continuación:</font>
<form action="http://www.google.com/webmasters/sitemaps/ping" method="GET"><input type="hidden" name="sitemap" value="http://<?php echo $nn . "/" . $hname;?>">
<input type="submit" value="Enviar ping"></form>
<font face="Arial">El archivo generado/actualizado se puede ver en <a href="http://<?php echo $nn . "/" . $hname;?>">" target="_blank">http://<?php echo $nn . "/" . $hname;?></a></font></body>
<?php
}
} else {
?><head><title>Generador del indice XML para Google Sitemaps</title></head>
<body>
<font face="Arial">Escriba la contraseña para generar o actualizar el indice:<br></font>
<form method="POST" action="<?php echo j6($SERVER["PHP_SELF"]);?>"><input type="password" name="qa" size="14"><br>
<input type="checkbox" name="ytx" value="y" id="x"><label for="x">Indeczar archivos TXT</label><br><input type="submit" value="Generar"></form></body>
<php
}
?></html>

Las varibles $hname y $contase son el nombre que a tener el archivo final que generada la página y la contraseña que tendremos que poner para realizar la operación, respectivamente. Ambas se pueden modificar a gusto. La contraseña inicial en este codigo es nuih , o sea que se utiliza esta contraseña si se copio y pego el codigo de este mensaje sin hacerle ninguna modificación.

Es importante que en el Espacio WEB se interpreten los archivos en PHP. Para esto hay que ir al Panel de control del Espacio WEB (se accede desde el enlace "Espacio WEB" en el menú izquierdo "Servicios" en todas las páginas de miarroba.com) , hacer clic en el boton "Preferencias" que esta cerca del pie de la página. Dentro de las preferencias hay que buscar la casilla de verificación "Soporte de ficheros PHP activado" y asegurarse de que este marcada (o activada). También es recomendable tener marcada la siguiente casilla de verificación que es "Mostrar errores PHP en pantalla" para asegurarse de ver algun posible error que pueda ocurrir.
Después de esto se puede hacer clic en el boton "WebFTP" para subir el archivo PHP para probarlo. También se puede subir a traves del FTP Normal usando un cliente FTP (puede ser Internet Explorer). En caso de que se necesite descargar el archivo desde webcindario.com a nuestro disco duro solo se podra unicamente via FTP Normal (NO WebFTP).
Obviamente lo que dije en parrafos anteriores se aplica para los Espacios WEB de miarroba.com (o sea los sitios web alojados en webcindario.com), por lo cual, para otros hostings (ya sean de pago o gratiutos) puede ser diferente.
Nota del 25/06/2005 a las 00:32 (GMT+01:00): En esta ultima edición corregi un par de errores que había en el codigo, por lo cual si hacia algo mal, actualicen a este codigo que debe funcionar. Ademas había un tercer error al escribir el día, mes y año en la fecha de modificación de un archivo.


Usuario habitual
Usuario habitual
Haz clic para ver el perfil del usuario
Mensajes: 78
Desde: 19/Ago/2003
· ·
#2 ·

Quería notificar algo:
En las 3 ultimas lineas de codigo que dicen:

<php
}
?></html>

Debe decir:

<?php
}
?></html>

Lo aclaro de esta forma ya que por algun bug en el foro me reemplaza &#039; (ese texto lo pueden encontrar en el codigo) por un ' (un apostrofe) al editar un mensaje (el anterior a este en este caso).


Usuario habitual
Usuario habitual
Haz clic para ver el perfil del usuario
Mensajes: 78
Desde: 19/Ago/2003
· ·
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Foro de soporte · Espacio WEB · PHP
Opciones:
Subscríbete a este tema
Date de baja de este tema
Ir al subforo:  
TU NO PUEDES Escribir nuevos temas en este foro
TU NO PUEDES Responder a los temas en este foro
TU NO PUEDES Editar tus propios mensajes en este foro
TU NO PUEDES Borrar tus propios mensajes en este foro
Ahora son las 03:12 UTC+02:00 DST
Temas similares
No se han encontrado temas similares