تماس با ما

موبایل: 2565 038 0912

دفتر تهران: 2565 2842 021

دفتر گرگان: 2565 3233 017


محاسبه و نمایش پیج رنک گوگل با php-قسمت شانزدهم

پیج رنک گوگل یا google page rank که به اختصار به آن PR هم می گویند، یکی از مهم ترین و جنجال برانگیزترین مباحث بین مدیران وبلاگ ها و سایت های مختلف بوده و کماکان هست، تا جایی که برخی به هر روشی که شده، سعی می کنند پیج رنک خود را بالا ببرند و حتی خیلی چیزهای دیگر را فدای آن می کنند! به هر صورت بحث ما در مورد اینکه چگونه پیج رنک خود را افزایش دهیم یا مسائل از این دست نیست، بلکه می خواهیم ببینیم چگونه می توان با زبان برنامه نویسی PHP، نمره پیج رنک گوگل سایت یا وبلاگ خود را به دست آورد، البته در این مطلب نمی خواهیم نحوه ساخت ابزار نمایش پیج رنک گوگل را آموزش دهیم، بلکه می خواهیم پایه و مبنای اصلی کار برای برنامه نویسان، که همان عددی است که گوگل برای آدرس سایت ها و وبلاگ های درخواست شده بر می گرداند را با PHP دریافت کنیم، اینکه از این عدد چطور استفاده خواهیم کرد، بستگی به ایده های ذهنی و سلیقه خودتان دارد.

پیج رنک گوگل چیست؟
بد نیست قبل از اینکه وارد بحث اصلی شویم، مروری داشته باشیم به اینکه اصلا پیج رنک گوگل چیست؟ جواب این است که پیج رنک الگوریتمی پیچیده برای آنالیز یک لینک (صفحه) از لحاظ میزان ارزشمندی و محبوبیت در وب است، ارزشمندی یک لینک (صفحه) نیز بر اساس میزان و اهمیت صفحاتی است که به آن، لینک خروجی داده اند، به این ترتیب گوگل نمره ای از 0 تا 10 برای هر سایت (و در واقع برای هر لینک) در نظر می گیرد، هر چه این عدد بالاتر باشد، یعنی گوگل برای آن صفحه یا لینک ارزش بیشتری قائل است و اعتبار بیشتری به آن لااقل در تئوری می  دهد، البته در نمایش نتایج جستجو، پیج رنک، تنها یک بُعد کار است، الگوریتم های گوگل آنقدر پیچیده شده اند که بسیاری از عوامل را درهنگام نمایش مطالب سایت ها و وبلاگ ها در لیست نتایج جستجو دخیل می کنند، یا نوع امتیاز دهی گوگل به سایت ها و وبلاگ هایی که به فرض به تعداد زیادی لینک خروجی می دهند با سایت ها یا وبلاگ هایی که تنها به چند عدد لینک بسنده می کنند، فرق دارد، بعضا دیده شده، گوگل حتی رتبه سایتهای تبلیغاتی و پُر از لینک خروجی را به شدت کاهش داده و باعث حیرت همگان شده است.
به لحاظ تجاری عنوان پیج رنک یا page rank توسط گوگل ثبت شده است اما به لحاظ سابقه تاریخی این عنوان ابتدا متعلق به دانشگاه استنفُرد امریکا (Stanford University) بود و امتیاز آن در سال 2005 توسط شرکت گوگل از این دانشگاه خریداری شد، به تدریج با پیروی از گوگل، سایر رقبای جدی آن نیز تا حدودی این معیار را در الگوریتم های جستجوی خود اعمال کرده اند و اکنون تقریبا پیج رنک بالا تر یکی از نشانه های احتمال موفقیت بیشتر در وب است (البته تنها یکی از نشانه ها نه همه چیز!).
پیج رنک گوگل از چه آدرسی قابل دریافت است؟
پیج رنک گوگل را بر روی تولبارهای نمایش پیج رنک که در مرورگرهای مختلف تحت عنوان پلاگین نصب می شوند، می توان دریافت کرد، این تولبار ها با ایجاد درخواست به آدرس toolbarqueries.google.com و با ارسال آدرس صفحه مورد نظر، عددی را در جواب بین 0 تا 10 دریافت می کنند (برای صفحاتی که هنوز رتبه ای ندارند، هیچ چیز دریافت نمی شود) و آن عدد را به اشکال مختلف پردازش کرده و معمولا به صورت گرافیکی نشان می دهند.
محاسبه پیج رنک گوگل با کدهای php
زبان برنامه نویسی php این امکان را دارد که با ایجاد یک شبیه سازی با ابزارهای تولبار مرورگرها، به صورت مستقیم آدرس یک لینک را ارسال و عدد برگردانده شده توسط گوگل را نمایش دهد (توجه کنید که گوگل با هدف نمایش پیج رنک در تولبار خود، این سرویس را در دسترس قرار داده است، در واقع با php به نوعی این تولبار را جعل می کنیم)، در زیر به یکی از قوی ترین کدهایی که تا کنون در این خصوص نوشته شده است اشاره می کنیم؛ یادآور می شویم، چندی پیش گوگل در تولبار پیج رنک خود تغییراتی اعمال کرد که موجب از کارافتادن برخی از کدهای مشابه شد، اما این کد با سیستم جدید گوگل تطابق دارد.


<?php
//آدرس لینک جهت دریافت پیج رنک گوگل
$website = 'http://webgoo.ir';
//انتقال به صفحه پیش فرض در صورتی که لینک تنظیم نشده باشد
if (!isset($website)){
    header("Location: http://webgoo.ir");
    die();
}
if($website){
    if( !strstr($website,"http://") && !strstr($website,"https://") ){
            $website = "http://".$website;
    }
}
//تنظیمات اتصال به سرور گوگل
$googlehost='toolbarqueries.google.com';
//تنظیم واسط کاربری فرضی
$googleua='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5';
//تبدیل یک رشته به عدد صحیح 32 بیت
function StrToNum($Str, $Check, $Magic) {
    $Int32Unit = 4294967296; // 2^32
    $length = strlen($Str);
    for ($i = 0; $i < $length; $i++) {
        $Check *= $Magic;
        if ($Check >= $Int32Unit) {
            $Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));
            $Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check;
        }
        $Check += ord($Str{$i});
    }
    return $Check;
}
//ساخت یک کد رندُم برای لینک
function HashURL($String) {
    $Check1 = StrToNum($String, 0x1505, 0x21);
    $Check2 = StrToNum($String, 0, 0x1003F);
    $Check1 >>= 2;     
    $Check1 = (($Check1 >> 4) & 0x3FFFFC0 ) | ($Check1 & 0x3F);
    $Check1 = (($Check1 >> 4) & 0x3FFC00 ) | ($Check1 & 0x3FF);
    $Check1 = (($Check1 >> 4) & 0x3C000 ) | ($Check1 & 0x3FFF);    
    $T1 = (((($Check1 & 0x3C0) << 4) | ($Check1 & 0x3C)) <<2 ) | ($Check2 & 0xF0F );
    $T2 = (((($Check1 & 0xFFFFC000) << 4) | ($Check1 & 0x3C00)) << 0xA) | ($Check2 & 0xF0F0000 );
    return ($T1 | $T2);
}
function CheckHash($Hashnum) {
    $CheckByte = 0;
    $Flag = 0;
    $HashStr = sprintf('%u', $Hashnum) ;
    $length = strlen($HashStr);
    for ($i = $length - 1;  $i >= 0;  $i --) {
        $Re = $HashStr{$i};
        if (1 === ($Flag % 2)) {              
            $Re += $Re;     
            $Re = (int)($Re / 10) + ($Re % 10);
        }
        $CheckByte += $Re;
        $Flag ++;    
    }
    $CheckByte %= 10;
    if (0 !== $CheckByte) {
        $CheckByte = 10 - $CheckByte;
        if (1 === ($Flag % 2) ) {
            if (1 === ($CheckByte % 2)) {
                $CheckByte += 9;
            }
            $CheckByte >>= 1;
        }
    }
    return '7'.$CheckByte.$HashStr;
}
function getch($url) { return CheckHash(HashURL($url)); }
//دریافت عدد پیج رنک برگردانده شده توسط گوگل
function getpr($url) {
    global $googlehost,$googleua;
    $ch = getch($url);
    $fp = fsockopen($googlehost, 80, $errno, $errstr, 30);
    if ($fp) {
       $out = "GET /tbr?client=navclient-auto&ch=$ch&features=Rank&q=info:$url HTTP/1.1\r\n";
       $out .= "User-Agent: $googleua\r\n";
       $out .= "Host: $googlehost\r\n";
       $out .= "Connection: Close\r\n\r\n";
       fwrite($fp, $out);
       while (!feof($fp)) {
            $data = fgets($fp, 128);
            $pos = strpos($data, "Rank_");
            if($pos === false){} else{
                $pr=substr($data, $pos + 9);
                $pr=trim($pr);
                $pr=str_replace("n",'',$pr);
                return $pr;
            }
       }
       fclose($fp);
    }
}
?>

توضیح:
- کد بالا یک شبیه ساز تولبار گوگل است که پیج رنک لینک های درخواستی را نمایش می دهد (به صورت اعداد صفر تا 10).
- آدرس لینک (سایت، وبلاگ یا صفحه) خود را باید در متغیر website در بالای کد، تعریف کنید.
- سپس قسمت مربوط به if و http، https بررسی می کند که آیا لینک شما معتبر است یا خیر، اگر لینک با http یا https شروع نشده باشد، در ادامه، مقادیر به متغیر website اضافه خواهند شد تا لینک به صورت استاندارد درآید.
- در گام بعدی، تنظیمات مربوط به اتصال به سرور گوگل در آدرس toolbarqueries.google.com با یک واسط کاربری (UserAgent) فرضی (در واقع جعلی) اعمال می شود.
- قسمت های مربوط به توابع StrToNum، HashURL و CheckHash به طور ساده فرمولی است برای ایجاد کد عددی، مطابق با آدرس لینک درخواستی، این کد توسط گوگل با آدرس لینک مورد نظر تطبیق داده می شود و اگر صحیح باشد عدد پیج رنک را برمی گرداند.
- در تابع getpr، اتصال به سوکت با fsockopen و پورت 80 انجام می شود و نهایتا نتیجه به صورت عددی از 0 تا 10 به عنوان پیج رنک برگردانده می شود.
فراخوانی تابع محاسبه و نمایش پیج رنک گوگل
تابع بالا را به صورت زیر می توان فراخوانی کرد تا نتیجه محاسبه، به صورت یک عدد بین 0 تا 10 نمایش داده شود (برای صفحاتی که هنوز نمره ای دریافت نکرده اند، هیچ چیز نشان داده نخواهد شد.


<?php
//فراخوانی تابع و نمایش عدد پیج رنک گوگل
$pr = getpr("$website");
echo $pr;
?>

از این عدد می توان به صورت های مختلف استفاده کرد، مثلا به صورت داینامیک، پارامترهای دیگری به آن اضافه کرده و به صورت یک ابزار نمایش پیج رنک گوگل مورد استفاده قرار داد، یا می شود برای آگاهی از رنک سایت یا وبلاگ شخصی خود از آن بهره برد، در کل مهم این است که بتوانیم نتیجه را به صورت یک عدد بین 0 تا 10 دریافت کنیم، نحوه استفاده بستگی به ذوق، سلیقه و ایده های خودتان دارد.


سفارش طراحی سایت

سفارش طراحی سایت

google
yahoo
alexa
ebook
Baidu.com
Wikipedia
Blogger.com
Windows Live
Amazon.com
eBay
Bing
Ask
استانداری گلستان
f shdj, sefaresh, sefaresh .net, sefaresh.net, sthva, sthva nhj kj, sthva.kj, stthva.kj, xvhpd, آیفون, استفاده, اندروید, اپل, اپلیکیشن, اینترنت, باتری, بازار, بازی, دستگاه, دوربین, سامسونگ, سفارش, سفارش دات نت, سفارش دات نت sefaresh.net, سفارش.نت, سیستم, طراح وب, طراحي وب سايت, طراحی, طراحی وب سایت, فناوری, مایکروسافت, موبایل, هوشمند, کاربران, کمپانی, گلکسی, گوشی, گوشی هوشمند, گوگل

نمایش تمامی تگ ها
بسته ویژه مدارس مدارس
بسته ویژه پزشکان پزشکان
بسته ویژه مهندسین مهندسین