Sondaggio: Questo progetto ti è stato utile?
Si
No
[Guarda risultati]
 
Rispondi 
[NamaPR] Get Pagerank!
Modalità discussione Modalità lineare
07-08-2007, 06:19
Messaggio: #1 (permalink)
Namaless
Forumista Attivo
****
Registrato: Nov 2007
Messaggi: 320
Reputazione:

[NamaPR] Get Pagerank!


Bene.. la notte porta consigli quando non si ha sonno... per cui vado a presentare il nuovo progetto: "NamaPR"

NamaPR e' una classe scritta in PHP che permette tramite una semplice funzione avere il PR (Pagerank) di un dominio.

Per il momento non ho ancora passato lo script a classe effettiva perche' sti' facendo delle prove se usare la classe cosi':

Codice PHP:
echo NamaPR('www.namaless.com'); 

oppure

Codice PHP:
echo new NamaPR('www.namaless.com'); 

Aspettavo proprio di pubblicarlo qui.. Abbr

Per quanto riguarda la classe basta salvare il tutto in un file tipo "NamaPR.class.php" e nel solito posto creare un file "index.php", nel file "NamaPR.class.php" ci mettete questo codice:

Codice PHP:
<?php
/**
 *    Project:    NamaPR
 *    Version:    1.0
 ***********************************************************************
 *    Copyright (C) 1981-2007 Namaless ( http://www.namaless.com/ )
 *
 *    This program is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU General Public License
 *    as published by the Free Software Foundation; either version 2
 *    of the License, or (at your option) any later version.
 *
 *    This program is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with this program; if not, write to the Free Software
 *    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 ***********************************************************************
 *
 *    @link           http://www.namaless.com/
 *    @copyright      1981-2007 Namaless ( http://www.namaless.com/ )
 *
*/

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 
_xor32($a$b)
{
    return 
_int32($a) ^ _int32($b);
}

function 
_int32($x)
{
    return 
unserialize("i:$x;");
}

function 
_mix($a$b$c)
{
    
$a -= $b$a -= $c$a _xor32($a_zeroFill($c13));
    
$b -= $c$b -= $a$b _xor32($b$a<<8);
    
$c -= $a$c -= $b$c _xor32($c_zeroFill($b13));
    
$a -= $b$a -= $c$a _xor32($a_zeroFill($c12));
    
$b -= $c$b -= $a$b _xor32($b$a<<16);
    
$c -= $a$c -= $b$c _xor32($c_zeroFill($b5));
    
$a -= $b$a -= $c$a _xor32($a_zeroFill($c3));
    
$b -= $c$b -= $a$b _xor32($b$a<<10);
    
$c -= $a$c -= $b$c _xor32($c_zeroFill($b15));

    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 
$c+=($url[$k+8]<<8);
        case 
$b+=($url[$k+7]<<24);
        case 
$b+=($url[$k+6]<<16);
        case 
$b+=($url[$k+5]<<8);
        case 
$b+=($url[$k+4]);
        case 
$a+=($url[$k+3]<<24);
        case 
$a+=($url[$k+2]<<16);
        case 
$a+=($url[$k+1]<<8);
        case 
$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 
NamaPR($url)
{
    
$ch "6" _GoogleCH(_strord("info:" $url));

    
$pagerank = -1;
    
$fp = @fsockopen("www.google.com"80$errno$errstr10);

    if (!
$fp)
    {
        echo 
"$errstr ($errno)<br />\n";
    }
    else
    {
        
$out  "GET /search?client=navclient-auto&ch=" $ch .  "&features=Rank&q=info:" $url " HTTP/1.1\r\n" ;
        
$out .= "Host: www.google.com\r\n" ;
        
$out .= "Connection: Close\r\n\r\n" ;
        @
fwrite($fp$out);

        while (!
feof($fp))
        {
            
$data = @fgets($fp128);
            
$pos  strpos($data"Rank_");

            if (
$pos !== FALSE)
            {
                
$pagerank trim(substr($data$pos 9));
            }
        }

        @
fclose ($fp);
    }
    return 
$pagerank;
}
?>

mentre in "index.php" ci mettere questo:

Codice PHP:
<?php
// richiama la classe NamaPR
require_once('NamaPR.class.php');

echo 
NamaPR($_GET['url']);
?>

Cosi' per vedere il pr di un dominio bastera' usare il link "http://www.sito.it/index.php?url=www.namaless.com" e verra' restituito in numero il pr dell'url.

Suggerimenti e news sul mio blog: http://www.namaless.com/page/23/namapr-g...erank.html


trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
07-08-2007, 10:48
Messaggio: #2 (permalink)
L'avatar di izzyweb izzyweb
Forumista Attivo
****
Registrato: Apr 2007
Messaggi: 342
Reputazione:

RE: [NamaPR] Get Pagerank!


Ciao Mana
la classe che hai scritto e' molto simile a quella che usavo io per calcolare il pagerank dei siti, solo che nel mio si caricava l' immagine della barretta verde.
Il mio ha smesso di funzionare, adesso provo ad utilizzare il tuo script
se ho problemi ti faccio sapere
Grazie

Scambio link in Directory
La barra del Pagerank nel tuo sito gratis.

Visita sito dell'autore trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
07-08-2007, 14:52
Messaggio: #3 (permalink)
Namaless
Forumista Attivo
****
Registrato: Nov 2007
Messaggi: 320
Reputazione:

RE: [NamaPR] Get Pagerank!


Io l'ho provato in ambiente Windows...

Non appena ho tempo lo testo in ambiente Linux, ma da come l'ho scritto non dovrebbero esserci problemi visto che l'host non centra nulla e le funzioni sono esclusivamente quelle documentate in Google Labs.

Fammi sapere.. (ps. lo sapevo che mi rispondevi tu...)

trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
07-08-2007, 18:41
Messaggio: #4 (permalink)
L'avatar di izzyweb izzyweb
Forumista Attivo
****
Registrato: Apr 2007
Messaggi: 342
Reputazione:

RE: [NamaPR] Get Pagerank!


Ho testato il tuo script , funziona perfettamnete anche su Linux,
adesso peri' volevo far apparire delle immagini al posto del numero,
e' possibile??

Scambio link in Directory
La barra del Pagerank nel tuo sito gratis.

Visita sito dell'autore trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
07-08-2007, 19:23
Messaggio: #5 (permalink)
L'avatar di izzyweb izzyweb
Forumista Attivo
****
Registrato: Apr 2007
Messaggi: 342
Reputazione:

RE: [NamaPR] Get Pagerank!


Ho fatto io la modifica.....
Ho aggiunto le immagini della barretta verde,
ho fatto alcune prove e dovrebbe funzionare sia su linux che su windows
Vedi se ti Gusta
Ciauz

Codice PHP:
<?php
/**
 * Project: NamaPR
 * Version: 1.0
 ***********************************************************************
 * Copyright (C) 1981-2007 Namaless ( http://www.namaless.com/ )
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 ***********************************************************************
 *
 * @link http://www.namaless.com/
 * @copyright 1981-2007 Namaless ( http://www.namaless.com/ )
 *
*/

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 
_xor32($a$b)
{
 return 
_int32($a) ^ _int32($b);
}

function 
_int32($x)
{
 return 
unserialize("i:$x;");
}

function 
_mix($a$b$c)
{
 
$a -= $b$a -= $c$a _xor32($a_zeroFill($c13));
 
$b -= $c$b -= $a$b _xor32($b$a<<8);
 
$c -= $a$c -= $b$c _xor32($c_zeroFill($b13));
 
$a -= $b$a -= $c$a _xor32($a_zeroFill($c12));
 
$b -= $c$b -= $a$b _xor32($b$a<<16);
 
$c -= $a$c -= $b$c _xor32($c_zeroFill($b5));
 
$a -= $b$a -= $c$a _xor32($a_zeroFill($c3));
 
$b -= $c$b -= $a$b _xor32($b$a<<10);
 
$c -= $a$c -= $b$c _xor32($c_zeroFill($b15));

 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 
$c+=($url[$k+8]<<8);
 case 
$b+=($url[$k+7]<<24);
 case 
$b+=($url[$k+6]<<16);
 case 
$b+=($url[$k+5]<<8);
 case 
$b+=($url[$k+4]);
 case 
$a+=($url[$k+3]<<24);
 case 
$a+=($url[$k+2]<<16);
 case 
$a+=($url[$k+1]<<8);
 case 
$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 
NamaPR($url)
{
 
$ch "6" _GoogleCH(_strord("info:" $url));

 
$pagerank = -1;
 
$fp = @fsockopen("www.google.com"80$errno$errstr10);

 if (!
$fp)
 {
 echo 
"$errstr ($errno)<br />\n";
 }
 else
 {
 
$out "GET /search?client=navclient-auto&ch=" $ch "&features=Rank&q=info:" $url " HTTP/1.1\r\n" ;
 
$out .= "Host: www.google.com\r\n" ;
 
$out .= "Connection: Close\r\n\r\n" ;
 @
fwrite($fp$out);

 while (!
feof($fp))
 {
 
$data = @fgets($fp128);
 
$pos strpos($data"Rank_");

 if (
$pos !== FALSE)
 {
 
$pagerank trim(substr($data$pos 9));
 }
 }

 @
fclose ($fp);
 }
    
//display pagerank image. Create your own or download images I made for this script.
//If you make your own make sure to call them pr0.gif, pr1.gif, pr2.gif etc.
 
 
if($pagerank == 0){
 echo 
"<img src=\"/images/pagerank0.gif\" alt=\"PageRank\">";
 }elseif(
$pagerank == 1){
 echo 
"<img src=\"/images/pagerank1.gif\" alt=\"PageRank\">" ;
 }elseif(
$pagerank == 2){
 echo 
"<img src=\"/images/pagerank2.gif\" alt=\"PageRank\">" ;
 }elseif(
$pagerank == 3){
 echo 
"<img src=\"/images/pagerank3.gif\" alt=\"PageRank\">" ;
 }elseif(
$pagerank == 4){
 echo 
"<img src=\"/images/pagerank4.gif\" alt=\"PageRank\">" ;
 }elseif(
$pagerank == 5){
 echo 
"<img src=\"/images/pagerank5.gif\" alt=\"PageRank\">" ;
 }elseif(
$pagerank == 6){
 echo 
"<img src=\"/images/pagerank6.gif\" alt=\"PageRank\">" ;
 }elseif(
$pagerank == 7){
 echo 
"<img src=\"/images/pagerank7.gif\" alt=\"PageRank\">" ;
 }elseif(
$pagerank == 8){
 echo 
"<img src=\"/images/pagerank8.gif\" alt=\"PageRank\">" ;
 }elseif(
$pagerank == 9){
 echo 
"<img src=\"/images/pagerank9.gif\" alt=\"PageRank\">" ;
 }else{
 echo 
"<img src=\"/images/pagerank10.gif\" alt=\"PageRank\">" ;
 }
 
 
}
?>

Namaless: ho modificato il tag code passandolo a php cosi dovrebbe rimanere piu comprensibile.


Scambio link in Directory
La barra del Pagerank nel tuo sito gratis.

Ultima modifica di Namaless : 08-08-2007 alle ore 10:37.

Visita sito dell'autore trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
07-08-2007, 20:27
Messaggio: #6 (permalink)
L'avatar di gokufg gokufg
Amministratore
*******
Registrato: Oct 2006
Messaggi: 2,290
Reputazione:

RE: [NamaPR] Get Pagerank!


Grazie ad entrambi, messo in rilievo wink

;ciao

Edit: :39: era gia' in rilievo 18

Finito il seo contest zanzara mannara: complimentati con i vincitori del SEO contest wink Ecco la SERP: zanzara mannara
Presentati al Forum PW se ancora non l'hai fatto 07

Ultima modifica di gokufg : 07-08-2007 alle ore 20:28.

Visita sito dell'autore trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
07-08-2007, 20:49
Messaggio: #7 (permalink)
L'avatar di izzyweb izzyweb
Forumista Attivo
****
Registrato: Apr 2007
Messaggi: 342
Reputazione:

RE: [NamaPR] Get Pagerank!


Goku mi modifichi la riga 7 come le altre, mi e' sfuggita......
non me la fa piu' modificare
Grazie

Scambio link in Directory
La barra del Pagerank nel tuo sito gratis.

Visita sito dell'autore trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
07-08-2007, 21:37
Messaggio: #8 (permalink)
L'avatar di gokufg gokufg
Amministratore
*******
Registrato: Oct 2006
Messaggi: 2,290
Reputazione:

RE: [NamaPR] Get Pagerank!


izzyweb ha scritto:
Goku mi modifichi la riga 7 come le altre, mi e' sfuggita......
non me la fa piu' modificare
Grazie


Fatto :07:


Finito il seo contest zanzara mannara: complimentati con i vincitori del SEO contest wink Ecco la SERP: zanzara mannara
Presentati al Forum PW se ancora non l'hai fatto 07

Visita sito dell'autore trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
08-08-2007, 09:13
Messaggio: #9 (permalink)
L'avatar di izzyweb izzyweb
Forumista Attivo
****
Registrato: Apr 2007
Messaggi: 342
Reputazione:

RE: [NamaPR] Get Pagerank!


Puntuale come sempre
Grazie

Scambio link in Directory
La barra del Pagerank nel tuo sito gratis.

Visita sito dell'autore trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
08-08-2007, 10:33
Messaggio: #10 (permalink)
Namaless
Forumista Attivo
****
Registrato: Nov 2007
Messaggi: 320
Reputazione:

RE: [NamaPR] Get Pagerank!


emm, non per fare il guastafeste, ma allora invece di allungare mostruosamente cosi il codice basta fare dopo il tag di chiusura di php

Codice:
<img src="/images/pagerank<?php echo NamaPR("www.namaless.com"); ?>.gif\" alt=\"PageRank\">


Non vi pare? O_o

Inoltre si puo aggiungere unaltra icona per quando ci sono problemi con google visto che la classe restituisce -1 in caso di problemi quindi limmagine potrebbe essere pr-1.gif 07


Ultima modifica di Namaless : 08-08-2007 alle ore 10:41.