mrtnw2003
Usuario habitual
Usuario habitual

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.

mrtnw2003
Usuario habitual
Usuario habitual

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).

Este tema fue cerrado y no se pueden escribir nuevas respuestas
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
No se han encontrado temas similares