 |
Foro de Posicionamiento y Buscadores Aprendiendo a Promocionar Páginas Web. Xeoweb :: Sindicar
|

| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
jdurgell ¿Qué es SEO?

Registrado: 22 Oct 2005 Mensajes: 9 Ubicación: Madrid
|
Publicado: Sab Oct 22, 2005 2:51 am Asunto: Script PHP para controlar el pagerank. |
|
|
¡Hola a todo el mundo!
Me presento: mi nombre es Jaume d'Urgell y soy ingeniero informático, si bien trabajo como escritor.
Aunque seguramente todos conocéis ya éste código fuente, me gustaría re-publicarlo de nuevo, porque creo que es muy interesante y puede seros de ayuda.
Se trata de un pequeño script que permite efectuar numerosas consultas sobre el PageRank de uno o varios sitios web, bien apra ir controlando de cerca la evolución de una página, bien para ubicarlo dentro de un JS cliente para condicionar ciertos contenidos en función del PageRank, o para lo que se os ocurra.
Si alguien desea verlo en funcionamiento, en real, lo tenéis en las siguiente dirección web:
http://www.durgell.com/pagerank/
Y para familiarizarnos con los parámetros, ahí os pongo algunos ejemplos de uso:
http://www.durgell.com/pagerank/?url=www.xeoweb.com
http://www.durgell.com/pagerank/?url=www.xeoweb.com&type=number
Bueno, sin más, ahí va el código fuente, que de todos modos podéis bajaros desde la siguiente dirección:
http://www.durgell.com/pagerank/script.zip
| Código: | <?php
set_time_limit(0);
//header("Content-Type: text/html; charset=utf-8");
define('GOOGLE_MAGIC', 0xE6359A60);
//unsigned shift right
function zeroFill($a, $b)
{
$z = hexdec(80000000);
if ($z & $a)
{
$a = ($a>>1);
$a &= (~$z);
$a |= 0x40000000;
$a = ($a>>($b-1));
}
else
{
$a = ($a>>$b);
}
return $a;
}
function mix($a,$b,$c) {
$a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
$b -= $c; $b -= $a; $b ^= ($a<<8);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
$b -= $c; $b -= $a; $b ^= ($a<<16);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));
$b -= $c; $b -= $a; $b ^= ($a<<10);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
return array($a,$b,$c);
}
function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {
if(is_null($length)) {
$length = sizeof($url);
}
$a = $b = 0x9E3779B9;
$c = $init;
$k = 0;
$len = $length;
while($len >= 12) {
$a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
$b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
$c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));
$mix = mix($a,$b,$c);
$a = $mix[0]; $b = $mix[1]; $c = $mix[2];
$k += 12;
$len -= 12;
}
$c += $length;
switch($len) {
case 11: $c+=($url[$k+10]<<24);
case 10: $c+=($url[$k+9]<<16);
case 9 : $c+=($url[$k+8]<<8);
case 8 : $b+=($url[$k+7]<<24);
case 7 : $b+=($url[$k+6]<<16);
case 6 : $b+=($url[$k+5]<<8);
case 5 : $b+=($url[$k+4]);
case 4 : $a+=($url[$k+3]<<24);
case 3 : $a+=($url[$k+2]<<16);
case 2 : $a+=($url[$k+1]<<8);
case 1 : $a+=($url[$k+0]);
}
$mix = mix($a,$b,$c);
return $mix[2];
}
function strord($string) {
for($i=0;$i<strlen($string);$i++) {
$result[$i] = ord($string{$i});
}
return $result;
}
function getExactNumber($url) {
$result = GoogleCH(strord('info:'.$url));
$result = file("http://www.google.com/search?client=navclient-auto&ch=6".$result."&features=Rank&q=info:".$url);
$result = explode (':', $result[2]);
$result = $result[2];
return ($result);
}
function getNumber($url) {
$result = GoogleCH(strord('info:'.$url));
$result = file("http://www.google.com/search?client=navclient-auto&ch=6".$result."&features=Rank&q=info:".$url);
$result = explode (':', $result[2]);
$result = $result[2];
return abs($result);
}
function getString($url) {
$result = GoogleCH(strord('info:'.$url));
$result = file("http://www.google.com/search?client=navclient-auto&ch=6".$result."&features=Rank&q=info:".$url);
$result = explode (':', $result[2]);
$number[0] = 'cero';
$number[1] = 'uno';
$number[2] = 'dos';
$number[3] = 'tres';
$number[4] = 'cuatro';
$number[5] = 'cinco';
$number[6] = 'seis';
$number[7] = 'siete';
$number[8] = 'ocho';
$number[9] = 'nueve';
$number[10] = 'diez';
$result = $number[abs($result[2])];
return $result;
}
function getGraph($url) {
$result = GoogleCH(strord('info:'.$url));
$result = file("http://www.google.com/search?client=navclient-auto&ch=6".$result."&features=Rank&q=info:".$url);
$result = explode (':', $result[2]);
$result = "<span title='El Google Page Rank™ de ".$url." es ".getString($url).".' style='border: 1px gray solid'><span style='background: green; width:" . abs($result[2]) * 4 . "px; height:5px;'><div style='display:none;'>.</div></span><span style='background: white; width:" . (10 - abs($result[2])) * 4 . "px; height:5px;'><div style='display:none;'>.</div></span></span>";
return $result;
}
function getFull($url) {
echo "<font face=Arial size=1>Según <a href=http://www.google.com/ style='text-decoration:none;'><font color=blue>G</font><font color=red>o</font><font color=orange>o</font><font color=blue>g</font><font color=green>l</font><font color=red>e</font></a>™, el sitio <a href=http://$url>$url</a> tiene un índice de importancia equivalente a <b title='Google Page Rank = ".getNumber($url)."'>".getString($url)."</b> en una escala de 0 a 10. PageRank™ gráfico: </font>".getGraph($url);
}
function reportBegin() {
echo "<table border=0 cellspacing=1 cellpadding=2 bgcolor=gray>";
echo "<tr>";
}
function reportEntry($url) {
echo "<td bgcolor=white>".$url."</td>";
echo "<td bgcolor=white>".getNumber($url)."</td>";
echo "<td bgcolor=white>".getGraph($url)."</td>";
}
function reportGap() {
echo "</tr>";
echo "<tr>";
}
function reportInter() {
echo "<td>";
echo "</td>";
}
function reportClose() {
echo "</tr>";
echo "</table>";
}
function fullInfo($url) {
echo "<font face=Arial size=1>Según <a href=http://www.google.com/ style='text-decoration:none;'><font color=blue>G</font><font color=red>o</font><font color=orange>o</font><font color=blue>g</font><font color=green>l</font><font color=red>e</font></a>™, este sitio tiene un índice de importancia equivalente a <b title='Google Page Rank = ".getNumber($url)."'>".getString($url)."</b> en una escala de 0 a 10. PageRank™ gráfico: </font>".getGraph($url);
}
if ($_GET['site']=='') {
if ($_GET['url']<>'') {
if ($_GET['type']=='exact') echo getExactNumber($_GET['url']);
if ($_GET['type']=='number') echo getNumber($_GET['url']);
if ($_GET['type']=='string') echo getString($_GET['url']);
if ($_GET['type']=='graphic') echo getGraph($_GET['url']);
if ($_GET['type']=='graph') echo getGraph($_GET['url']);
if ($_GET['type']=='full') echo getFull($_GET['url']);
if ($_GET['type']=='all') echo getFull($_GET['url']);
if ($_GET['type']=='exacto') echo getExactNumber($_GET['url']);
if ($_GET['tipo']=='numero') echo getNumber($_GET['url']);
if ($_GET['tipo']=='letra') echo getString($_GET['url']);
if ($_GET['tipo']=='letras') echo getString($_GET['url']);
if ($_GET['tipo']=='grafico') echo getGraph($_GET['url']);
if ($_GET['tipo']=='todo') echo getFull($_GET['url']);
if ($_GET['type']=='' & $_GET['tipo']=='') getFull($_GET['url']);
}
if ($_GET['url']=='') {
if ($_SERVER['HTTP_REFERER']=='') {
echo 'Modo de uso: <code><font color=gray>http://www.durgell.com/pagerank?url=www.ejemplo.com&type=graph</font></code>, donde <code><font color=gray>type</font></code> puede ser: <code><font color=gray>numero</font></code>, <code><font color=gray>letra</font></code>, <code><font color=gray>grafico</font></code> o <code><font color=gray>todo</font></code>. (autor: Jaume d\'Urgell, <a href="mailto:jaume@durgell.com">jaume@durgell.com</a>).';
} else {
if ($_GET['type']=='javascript') {
echo 'infoPageRankExactNumber="'.getExactNumber($_SERVER['HTTP_REFERER']).'";';
echo 'infoPageRankNumber="'.getNumber($_SERVER['HTTP_REFERER']).'";';
echo 'infoPageRankString="'.getString($_SERVER['HTTP_REFERER']).'";';
echo 'infoPageRankGraph="'.getGraph($_SERVER['HTTP_REFERER']).'";';
echo 'infoURL="'.$_SERVER['HTTP_REFERER'].'";';
echo 'infoIP="'.$_SERVER['REMOTE_ADDR'].'";';
}
if ($_GET['type']=='exact') echo 'infoPageRankExactNumber="'.getExactNumber($_SERVER['HTTP_REFERER']).'";';
if ($_GET['type']=='number') echo 'infoPageRankNumber="'.getNumber($_SERVER['HTTP_REFERER']).'";';
if ($_GET['type']=='string') echo 'infoPageRankString="'.getString($_SERVER['HTTP_REFERER']).'";';
if ($_GET['type']=='graphic') echo 'infoPageRankGraph="'.getGraph($_SERVER['HTTP_REFERER']).'";';
if ($_GET['type']=='graph') echo 'infoPageRankGraph="'.getGraph($_SERVER['HTTP_REFERER']).'";';
if ($_GET['type']=='full') echo 'infoPageRankFull="'.getFull($_SERVER['HTTP_REFERER']).'";';
if ($_GET['type']=='all') echo 'infoPageRankFull="'.getFull($_SERVER['HTTP_REFERER']).'";';
if ($_GET['type']=='exacto') echo 'infoPageRankExactNumber="'.getExactNumber($_SERVER['HTTP_REFERER']).'";';
if ($_GET['tipo']=='numero') echo 'infoPageRankNumber="'.getNumber($_SERVER['HTTP_REFERER']).'";';
if ($_GET['tipo']=='letra') echo 'infoPageRankGraph="'.getString($_SERVER['HTTP_REFERER']).'";';
if ($_GET['tipo']=='letras') echo 'infoPageRankGraph="'.getString($_SERVER['HTTP_REFERER']).'";';
if ($_GET['tipo']=='grafico') echo 'infoPageRankGraph="'.getGraph($_SERVER['HTTP_REFERER']).'";';
if ($_GET['tipo']=='todo') echo 'infoPageRankFull="'.getFull($_SERVER['HTTP_REFERER']).'";';
if ($_GET['type']=='' & $_GET['tipo']=='') 'infoPageRankFull="'.getFull($_SERVER['HTTP_REFERER']).'";';
}
}
}
else
if ($_GET['site']=='durgell.com') {
reportBegin();
reportEntry("www.durgell.com"); reportInter();
reportEntry("durgell.com");
reportGap();
reportEntry("www.durgell.com/"); reportInter();
reportEntry("durgell.com/");
reportGap();
reportEntry("www.durgell.com/index.php"); reportInter();
reportEntry("durgell.com/index.php");
reportGap();
reportEntry("www.durgell.com/index.html"); reportInter();
reportEntry("durgell.com/index.html");
reportGap();
reportEntry("www.durgell.com/index.htm"); reportInter();
reportEntry("durgell.com/index.htm");
reportGap();
reportEntry("www.durgell.com/letras"); reportInter();
reportEntry("durgell.com/poemas");
reportGap();
reportEntry("www.durgell.com/letras/"); reportInter();
reportEntry("durgell.com/poemas/");
reportGap();
reportEntry("www.durgell.com/poemas"); reportInter();
reportEntry("durgell.com/poemas");
reportGap();
reportEntry("www.durgell.com/poemas/"); reportInter();
reportEntry("durgell.com/poemas/");
reportGap();
reportEntry("www.durgell.com/pagerank"); reportInter();
reportEntry("durgell.com/pagerank");
reportGap();
reportEntry("www.durgell.com/metrica.es.php"); reportInter();
reportEntry("durgell.com/metrica.es.php");
reportClose();
}
?> |
Como se puede deducir a la vista del código, es perfectamente posible y muy fácil adaptar cierta parte de hardcoding a nuestras necesidades particulares.
Bueno, espero que sea de vuestro interés.
Sin otro particular, recibid un cordial saludo,
Jaume d'Urgell |
|
| Volver arriba |
|
 |
Philippe Yo uso Google

Registrado: 16 May 2004 Mensajes: 1008 Ubicación: La Paloma, Uruguay
|
Publicado: Sab Oct 22, 2005 4:09 am Asunto: |
|
|
Parece no funcionar, al menos a mí me muestra todos los sitios con PageRank 0. _________________ Participa en el foro de jovenes y haz amigos.
Visita blogs de calidad en La Gran Red. Blogs de literatura, internet, viajes y más. |
|
| Volver arriba |
|
 |
cocososo Olé sí que era un buen buscador

Registrado: 19 Dic 2004 Mensajes: 40 Ubicación: La Verneda, Rio Besós, Mar Mediterraneo.
|
Publicado: Sab Oct 22, 2005 9:38 am Asunto: |
|
|
A mi me funciona. _________________ Antonio Román |
|
| Volver arriba |
|
 |
jdurgell ¿Qué es SEO?

Registrado: 22 Oct 2005 Mensajes: 9 Ubicación: Madrid
|
Publicado: Sab Oct 22, 2005 1:57 pm Asunto: |
|
|
Siempre que se publica un código fuente, y más aún si éste tiene más de 25 líneas, siempre hay personas que lamentablemente encuentran dificultades a la hora de implementarlo, no obstante, en este caso, a parte de publicar el código, he facilitado un enlace para descargárselo (en ZIP), y un vínculo a una versión completamente operativa.
El código funciona, eso es una verdad incontrovertible.
Si en lugar de un "no funciona", podéis hacer una pregunta más concreta, trataré de ayudaros en lo que pueda.
Un saludo, |
|
| Volver arriba |
|
 |
Philippe Yo uso Google

Registrado: 16 May 2004 Mensajes: 1008 Ubicación: La Paloma, Uruguay
|
Publicado: Sab Oct 22, 2005 2:23 pm Asunto: |
|
|
| jdurgell escribió: | Siempre que se publica un código fuente, y más aún si éste tiene más de 25 líneas, siempre hay personas que lamentablemente encuentran dificultades a la hora de implementarlo, no obstante, en este caso, a parte de publicar el código, he facilitado un enlace para descargárselo (en ZIP), y un vínculo a una versión completamente operativa.
El código funciona, eso es una verdad incontrovertible.
Si en lugar de un "no funciona", podéis hacer una pregunta más concreta, trataré de ayudaros en lo que pueda.
Un saludo, |
Ya ví que sí funciona, es que parece que en Firefox no se muestra correctamente el gráfico del PageRank... y me refiero a la versión que tienes corriendo online en tu servidor. Ahora lo miré en IE y se ve bien, debe ser un error o incompatibilidad en el código para mostrar el gráfico. _________________ Participa en el foro de jovenes y haz amigos.
Visita blogs de calidad en La Gran Red. Blogs de literatura, internet, viajes y más. |
|
| Volver arriba |
|
 |
jdurgell ¿Qué es SEO?

Registrado: 22 Oct 2005 Mensajes: 9 Ubicación: Madrid
|
Publicado: Sab Oct 22, 2005 2:58 pm Asunto: |
|
|
Hummm... curioso. Voy a ver si puedo ponerle solución.
Un saludo y gracias por comunicarlo. |
|
| Volver arriba |
|
 |
Davilac Soy de Yahoo!

Registrado: 26 Dic 2004 Mensajes: 836 Ubicación: BCN
|
|
| Volver arriba |
|
 |
cocososo Olé sí que era un buen buscador

Registrado: 19 Dic 2004 Mensajes: 40 Ubicación: La Verneda, Rio Besós, Mar Mediterraneo.
|
Publicado: Sab Oct 22, 2005 3:31 pm Asunto: |
|
|
| jdurgell escribió: |
El código funciona, eso es una verdad incontrovertible.
|
Pos va ser que no!
Te veo un poquitin estirao. _________________ Antonio Román |
|
| Volver arriba |
|
 |
jdurgell ¿Qué es SEO?

Registrado: 22 Oct 2005 Mensajes: 9 Ubicación: Madrid
|
Publicado: Sab Oct 22, 2005 3:53 pm Asunto: |
|
|
¿Y no es un poquitín de estirao, llamar estirao a otro?
¿Me mostraría menos estirao aceptar que no funciona, algo que sí funciona?
¿Se puede llamar error a un defecto de visualización?
¿Tiene algo que ver la forma en la que un cliente HTTP visualiza -o mejor dicho, no visualiza- el resultado de un programa en servidor, para afirmar que el programa no funciona?
Este script tiene varios modos de funcionamiento en los que no muestra gráfico alguno, sino una mera salida de texto. ¿eso también depende del cliente? |
|
| Volver arriba |
|
 |
cocososo Olé sí que era un buen buscador

Registrado: 19 Dic 2004 Mensajes: 40 Ubicación: La Verneda, Rio Besós, Mar Mediterraneo.
|
Publicado: Sab Oct 22, 2005 5:14 pm Asunto: |
|
|
Empezare por el principio:
Gracias por dar a conocer el codigo, siempre me gusta chafardear el trabajo de alguien que sabe mas que yo.
No hacia falta que pegases el codigo en el foro, con el enlace es suficiente.
A tus preguntas: Si, Si, Si, Si, No entiendo. _________________ Antonio Román |
|
| Volver arriba |
|
 |
Davilac Soy de Yahoo!

Registrado: 26 Dic 2004 Mensajes: 836 Ubicación: BCN
|
Publicado: Sab Oct 22, 2005 6:10 pm Asunto: |
|
|
Una sugerencia: quizá le puedas poner la opción de usar una API key.
Sólo una duda: para usar una Api de Google sólo hay que añadirla con &key= a la petición no? _________________ Servicios profesionales SEO Davilac Internet Marketing
Actualidad Motor
iPhone |
|
| Volver arriba |
|
 |
JustMe Vivo en Xeoweb
Registrado: 27 Sep 2005 Mensajes: 3070 Ubicación: Por ahí....
|
Publicado: Dom Oct 23, 2005 1:05 am Asunto: |
|
|
| cocososo escribió: | | jdurgell escribió: |
El código funciona, eso es una verdad incontrovertible.
|
Pos va ser que no!
Te veo un poquitin estirao. |
Es uno estirao por hacer un uso correcto del lenguaje? Ya quisiera yo escribir como lo hace Jaume. _________________ PHP Data uri fier
Blog Gratis |
|
| Volver arriba |
|
 |
war Soy de Yahoo!

Registrado: 29 Sep 2005 Mensajes: 745 Ubicación: Nicaragua
|
Publicado: Lun Oct 24, 2005 1:25 am Asunto: |
|
|
@TODOS:
Jajaja, este tema resulto interesante, por lo menos a mi me sirvió-...
| Cita: | | Sólo una duda: para usar una Api de Google sólo hay que añadirla con &key= a la petición no? |
Solo una preguntita, y un comentario :
1. Yo tengo un Api de Google, pero en realidad no se ni para qué, porque no le encontrado funcioanlidad alguna mas que para el Sitemap. Reconozco que me falta leer mas para terminar de comprender esto de Api, agradecería cualquier orientacion al respecto.
2. jdurdell: A mi me funcionó muy bien desde la primera, uso IE. _________________ Tutoriales de Photoshop
Diseño Web |
|
| Volver arriba |
|
 |
jdurgell ¿Qué es SEO?

Registrado: 22 Oct 2005 Mensajes: 9 Ubicación: Madrid
|
Publicado: Lun Oct 24, 2005 1:46 am Asunto: Disculpas por el tono. |
|
|
Hola a todos, de nuevo,
Lamento sinceramente que en ocasiones, un exceso de corrección escrita pueda ser interpretado como comportamiento altivo. Nada más lejos de mi voluntad.
Cuando llegué a Madrid, estaba acostumbrado a tratar a todo el mundo de Usted, supongo que eso era el resultado de tres años en el ejército, más los estudios y un ambiente familiar un tanto peculiar... y me pasaba lo mismo: resultaba incomprensible e involuntariamente hostil.
Lo dicho: disculpa si a alguien le molestó mi tono. No pretendía molestar a nadie.
Un saludo. |
|
| Volver arriba |
|
 |
war Soy de Yahoo!

Registrado: 29 Sep 2005 Mensajes: 745 Ubicación: Nicaragua
|
Publicado: Lun Oct 24, 2005 2:01 am Asunto: |
|
|
sin problemas por mi parte. TRanquilo y gracias nuevamente por el script  _________________ Tutoriales de Photoshop
Diseño Web |
|
| Volver arriba |
|
 |
|
| Respuesta Rápida y Acciones |
| |
|
|
Página 1 de 2
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
|
|
Logo diseñado por iLevante
Powered by phpBB © 2001, 2009 phpBB Group
|