.

PHP-skript Google PageRank’ide lugemiseks

03.05.2007  |  Gunnar

Google PageRank (PR) on suurus, mis näitab lehekülje tähtsust Google'i silmis kümne palli skaalal. Et DT lehekülgedel ka sellest aspektist silma peal hoida ning optimeerimise tulemusi jälgida, siis kirjutasin ühe lihtsa PHP-skripti, mis sitemap'ide põhjal koostab tabeli linkidest ja neile vastavatest PR-idest.

Et me ei peaks ise jalgratast leiutama, siis tõmbame skripti, mis suudab meile tagastada antud lingi PR-i. Toimivaks lahenduseks on näiteks HM2K google pagerank script. Salvestame selle nimega google_pagerank.php ning kommenteerime sealt välja viimase rea. 

Enda skripti alustame konfimise plokiga ning sinna paneme kirja kõik sitemap'id, mille linkide PR-e soovime näha. Muideks, sitemap'ide kohta võib anda vabalt ka URL-id. Enda skripti tõstame google_pagerank.php-st üle muutujad $googlehost ja $googleua.

Vahelduseks paremal pool näide sellest, milline hakkab välja nägema meie lõpptulemus.

Muutuja $highlight_from võimaldab meil paika panna PageRank-i väärtuse, millest alates rida tabelis esile tõstetakse.

Meie skript näeb välja selline.

<html>
<head>
    <title>Meie PageRank</title>
</head>
<body>
<h1>Meie PageRank</h1>
<?php
include('google_pagerank.php');

$sitemaps[] = 'http://www.example.com/sitemap1.xml';
$sitemaps[] = 'http://www.example.com/sitemap2.xml';

$highlight_from = 4;

// Host, kuhu ühenduse teeme
$googlehost='toolbarqueries.google.com';

// User-agent, mida PageRank-ide küsimisel kasutame
$googleua = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) ';
$googleua.= 'Gecko/20060728 Firefox/1.5';

// Koostame sitemap-ide dropdowni
echo 'Vali sitemap: ';
echo '<form method="POST" name="form">';
echo '<select name="pr" onchange="this.form.submit()">';
echo '<option value="">---</option>';

$pr = intval(@$_POST['pr']);
foreach($sitemaps as $key=>$val)
{
    echo '<option value='.($key+1);
    if($key == $pr-1)
        echo ' selected';
    echo '>'.$val.'</option>';
}
echo '</select>';

// Kui sitemap on valitud, siis kuvame PageRank-id
if($pr> 0 && $pr <= count($sitemaps))
    write_table($sitemaps[$pr-1]);

// Kirjutame välja sitemap-ile vastava PageRank-ide tabeli
function write_table($sitemap)
{
    global $highlight_from;
    $domxml = domxml_open_file($sitemap);
    $nodes = $domxml->get_elements_by_tagname('loc');
       
    echo '<table border="1" cellpadding="2" cellspacing="0">';
    echo '<tr><th bgcolor="whitesmoke">URL</th>';
    echo '<th bgcolor="whitesmoke">PR</th></tr>';
   
    for($i = 0; $i <count($nodes); $i++)
    {
        $tmp = $nodes[$i]->child_nodes();
        $tmp = $tmp[0]->content;
        $tmp = str_replace('http://','', $tmp);
        $pr = getpr($tmp);
       
        echo '<tr ';
        if($highlight_from> 0 && $pr>= $highlight_from)
            echo ' bgcolor="#FFCCCC"';
        echo '><td>'.$tmp.'</td><td align="right">'.$pr.'</td></tr>';
    }
       
    echo '</table>';
}
?>
</body>
</html>

Kindlasti saab seda skripti muuta oluliselt paremaks ja täiuslikumaks. Kas või sel teel, et kirjutada sisse täiendavaid kontrolle veasituatsioonideks. Aga oma ülesande täidab ta ka siintoodud kujul.

Kommenteeri

sulge
Saada link e-postiga

© DT 2006-2008 | Creative Commons Attribution-Noncommercial 3.0 License | WordPress