jul
20
2009

Tu propio PageRank para tu Web con PHP

Crea un page rank para tu sitio web

He notado que ultimamente muchas paginas se cuelgan de un famoso servicio de Google llamado PageRank el cual consiste en puntuaciones que califican tu web.

La verdad han surgido muchos sitios que solo utilizan de pretexto para obtener visitas. Y con un simple codigo en php obtienen esa puntuación. En este post te explicare como imprimir tu PageRank de tu pagina Web.

Lo primero que tenemos que hacer es crear un archivo en php por ejemplo llamado check_pr.php e insertamos este codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?php
define('GOOGLE_MAGIC', 0xE6359A60);
 
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 toInt32(& $x){
	$z = hexdec(80000000);
	$y = (int)$x;
	if($y==-$z&&$x<-$z){
		$y = (int)((-1)*$x);
		$y = (-1)*$y;
	}
	$x = $y;
}
 
function mix($a,$b,$c)
{
	$a -= $b; $a -= $c; toInt32($a); $a = (int)($a ^ (zeroFill($c,13)));
	$b -= $c; $b -= $a; toInt32($b); $b = (int)($b ^ ($a<<8));
	$c -= $a; $c -= $b; toInt32($c); $c = (int)($c ^ (zeroFill($b,13)));
	$a -= $b; $a -= $c; toInt32($a); $a = (int)($a ^ (zeroFill($c,12)));
	$b -= $c; $b -= $a; toInt32($b); $b = (int)($b ^ ($a<<16));
	$c -= $a; $c -= $b; toInt32($c); $c = (int)($c ^ (zeroFill($b,5)));
	$a -= $b; $a -= $c; toInt32($a); $a = (int)($a ^ (zeroFill($c,3)));
	$b -= $c; $b -= $a; toInt32($b); $b = (int)($b ^ ($a<<10));
	$c -= $a; $c -= $b; toInt32($c); $c = (int)($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) /* all the case statements fall through */
	{
		case 11: $c+=($url[$k+10]<<24);
		case 10: $c+=($url[$k+9]<<16);
		case 9 : $c+=($url[$k+8]<<8);
		/* the first byte of c is reserved for the length */
		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]);
		/* case 0: nothing left to add */
	}
	$mix = mix($a,$b,$c);
	/*-------------------------------------------- report the result */
	return $mix[2];
}
 
//converts a string into an array of integers containing the numeric value of the char
function strord($string)
{
    for($i=0;$i<strlen($string);$i++) {
        $result[$i] = ord($string{$i});
    }
    return $result;
}
 
function get_page_rank($url)
{
	$url = preg_replace('/\?.*$/','?',$url);
	$reqgr = "info:".$url;
	$reqgre = "info:".urlencode($url);
	$gch = "6".GoogleCH(strord($reqgr));
	$fsock = fsockopen('toolbarqueries.google.com', 80, $errno, $errstr);
	if ( !$fsock ){
		echo 'Can not connect to server';
		return -1;
	}
	$base_get = "/search?client=navclient-auto&ch=".$gch."&ie=UTF-8&oe=UTF-8&features=Rank:FVN&q=".$reqgre;
	fputs($fsock, "GET $base_get HTTP/1.1\r\n");
	fputs($fsock, "HOST: toolbarqueries.google.com\r\n");
	fputs($fsock, "User-Agent: Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; Windows XP 5.1)\r\n");
	fputs($fsock, "Connection: close\r\n\r\n");
	while(!feof($fsock)){
		$res['content'] .= fread($fsock, 1024);
	}
	fclose($fsock);
	if(preg_match('/Rank_.*?:.*?:(\d+)/i', $res['content'], $m)){
		return $m[1];
	}else{
		return -1;
	}
}
?>

Luego en nuestro index.php o donde querramos, llamamos a las funciones del archivo check_pr.php de la siguiente manera:

1
2
3
4
5
6
7
<?php
include("check_pr.php");
$dominio = "http://www.zoneartcss.com";
$pagerank = get_page_rank($dominio);
 
echo "<b>PageRank:</b>: ".$pagerank; //Imprimimos los resultados
?>

Y listo nos arrojara como resultado nuestro PageRank

Dejen sus Comentarios

2 Comments + Add Comment

  • Can I just say what a relief to search out somebody who truly is aware of what theyre speaking about on the internet. You positively know the best way to convey an issue to mild and make it important. Extra people have to learn this and perceive this facet of the story. I cant believe youre not more in style because you undoubtedly have the gift.

  • [...] Original post:  Tu PageRan con PHP para mi Web | ZoneArtCSS | Tu lugar: Del Arte … [...]

Leave a comment

Patrocinador

Siguenos

Suscribete

Escribe tu correo:

Recibirás un correo con todos los articulos escritos en ZoneArtCss durante el día.

Correo @zoneartcss.com

Obtén una cuenta de @zoneartcss.com gratuita