نمایش نتایج 1 تا 1 از 1

نام تاپیک: توابع گرفتن Alexa Rank - Google Page Rank بدون نیاز به API !!!

  1. #1
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    بهمن 1387
    سن
    37
    پست
    732

    توابع گرفتن Alexa Rank - Google Page Rank بدون نیاز به API !!!

    خوب دوستان از اونجایی که خودتون میدونید Alexa Rank و Google Page Rank دو تا از فاکتورهای مهم برای یک وب سایت هستن که هر وب سایتی به اونها نیاز داره !
    حالا بعضی از وب سایتها برای نشون دادن این رنک توی سایت خودشون میان از API های آماده استفاده میکنن !
    در اینجا بنده برای هرکدوم توابع رو گذاشتم !
    کافیه هست که فقط Domain مورد نظرتون رو به متغیر بدید و بعد Page Rank خودتون رو ببینید :)

    تابع Alexa Rank
    function alexaRank($domain){
    $remote_url = 'http://data.alexa.com/data?cli=10&dat=snbamz&url='.trim($domain);
    $search_for = '<POPULARITY URL';
    if ($handle = @fopen($remote_url, "r")) {
    while (!feof($handle)) {
    $part .= fread($handle, 100);
    $pos = strpos($part, $search_for);
    if ($pos === false)
    continue;
    else
    break;
    }
    $part .= fread($handle, 100);
    fclose($handle);
    }
    $str = explode($search_for, $part);
    $str = array_shift(explode('"/>', $str[1]));
    $str = explode('TEXT="', $str);

    return $str[1];
    }

    نحوه استفاده از تابع ( توجه کنید که حتی المقدور از آدرس کامل سایت برای Domain استفاده کنید - مثل : http://www.google.com ) :

    $alexa_rank=alexaRank($domain);
    $alexa_rank=number_format($alexa_rank, 0, ",", ",");
    echo $alexa_rank;


    تابع Google Page Rank - ( توجه کنید که این تابع شمال 4 تابع میباشد که باید همه رو لحاظ کنید و حتی المقدور از آدرس کامل سایت برای Domain استفاده کنید - مثل : http://www.google.com ) :

    function fetch_google_page_rank($url) {
    $url = strstr($url,"http://")? $url:"http://".$url;
    $fp = fsockopen("toolbarqueries.google.com", 80, $errno, $errstr, 30);
    if (!$fp) {
    echo "$errstr ($errno)
    \n";
    } else {
    $out = "GET /tbr?client=navclient-auto&ch=".CheckHash(HashURL($url))."&features=Rank &q=info:".$url."&num=100&filter=0 HTTP/1.1\r\n";
    $out .= "Host: toolbarqueries.google.com\r\n";
    $out .= "User-Agent: Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; Windows XP 5.1)\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{
    $pagerank = substr($data, $pos + 9);
    }
    }
    fclose($fp);
    return (int)$pagerank;
    }
    }

    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;
    }

    نحوه استفاده از تابع :

    $google_rank=fetch_google_page_rank($domain);
    echo $google_rank;

    موفق باشید :)
    آخرین ویرایش به وسیله siavashsay : سه شنبه 26 دی 1391 در 11:02 صبح

تاپیک های مشابه

  1. SEO,Page Rank ,...
    نوشته شده توسط EHSH در بخش توسعه وب (Web Development)
    پاسخ: 9
    آخرین پست: یک شنبه 15 آذر 1394, 16:53 عصر
  2. دریافت page rank گوگل و alexa
    نوشته شده توسط yasercomeng در بخش Classic ASP
    پاسخ: 6
    آخرین پست: شنبه 18 اردیبهشت 1389, 12:00 عصر
  3. Google Page Rank
    نوشته شده توسط robatic در بخش توسعه وب (Web Development)
    پاسخ: 6
    آخرین پست: پنج شنبه 10 آبان 1386, 23:53 عصر
  4. Google Page Rank
    نوشته شده توسط robatic در بخش طراحی وب (Web Design)
    پاسخ: 0
    آخرین پست: جمعه 16 شهریور 1386, 11:52 صبح
  5. Google Page Rank
    نوشته شده توسط m.hamidreza در بخش طراحی وب (Web Design)
    پاسخ: 4
    آخرین پست: چهارشنبه 14 شهریور 1386, 14:24 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •