Квартиры, дома, земельные участки Краснодарского края без посредников. Объявления собственников недвижимости.
Реклама здесь
Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Скрипт получает информацию от Google о сайте

Класс позволяет получать различную полезную информацию о сайте через сервисы Google.


<?php
/**
* This file contains the googledancer class that checks if Google is "dancing".
*
* @package googledancer
*/

/**
* googledancer class
*
* This class allows to check if Google is "dancing".
*
* @package googledancer
* @author Setec Astronomy
* @version 1.0
* @abstract Check if Google. is "dancing".
* @copyright 2004
* @example sample.php A sample code.
* @link http://setecastronomy.stufftoread.com
*/
class googledancer {
  
  
/* @access private */
  
var $main_server '';
  var 
$alt_servers = array ();
  var 
$domains = array ();
  
  
/* Default constructor of googledancer class. */
  // public function __construct ()
  
function googledancer () {
    if (!
function_exists ('fsockopen')) {
      die (
'googledancer class needs the fsockopen function!');
    }
    
$this->main_server 'www.google.com';
    
$this->alt_servers = array ('www.google.ch''www.google.at');
    
$this->domains = array ('yahoo.com''cnn.com''amazon.com');
  }
  
  
/* @access private */
  // private safe_set (&$var_true, $var_false = '') {
  
function safe_set (&$var_true$var_false '') {
    if (!isset (
$var_true)) {
      
$var_true $var_false;
    }
    return 
$var_true;
  }

  
/* @access private */
  // private queryHTTP ($url, $timeout = 10) {
  
function queryHTTP ($url$timeout 10) {
    
$parsed parse_url ($url);
    
$this->safe_set ($parsed['host']);
    
$this->safe_set ($parsed['port'], 80);
    
$this->safe_set ($parsed['path']);
    
$this->safe_set ($parsed['query']);
    
$fp fsockopen ($parsed['host'], $parsed['port'], $errno$errstr$timeout);
    if (
$fp !== false) {
      
fputs ($fp"GET " $parsed['path'] . "?" $parsed['query'] . " HTTP/1.0\r\n");
      
fputs ($fp"Accept: */*\r\n");
      
fputs ($fp"Referer: http://setecastronomy.stufftoread.com/\r\n");
      
fputs ($fp"Accept-Language: en\r\n");
      
fputs ($fp"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\n");
      
fputs ($fp"Host: " $parsed['host'] . "\r\n");
      
fputs($fp"Connection: close\r\n\r\n");
      
$result '';
      while (!
feof ($fp)) {
        
$result .= fgets ($fp128);
      }
       
fclose ($fp);
      return 
$result;
    }
    return 
false;
  }
  
  
/**
  * The getBackLinks method
  *
  * This method returns an array with the backlinks count about some important websites.
  * @param integer $timeout the timeout value used in the fsockopen function.
  * @return mixed it returns an array or false if it fails
  */
  // public function getBackLinks ($timeout = 10) {
  
function getBackLinks ($timeout 10) {
    
$result = array ();
    
$servers[] = $this->main_server;
    
$servers array_merge ($servers$this->alt_servers);
    foreach (
$this->domains as $domain) {
      foreach (
$servers as $server) {
        
$url 'http://' $server '/search?hl=en&ie=UTF-8&q=link%3A' urlencode ($domain);
        
$content $this->queryHTTP ($url);
        if (
$content !== false) {
          if (
preg_match ('/ of about <b>([\d,]*?)<\/b> linking /si'$content$matches)) {
            
$result[$domain][$server] = str_replace (','''$matches[1]);
          } else {
            
$result[$domain][$server] = 0;
          }  
        }
      }
    }
    return 
$result;
  }

  
/**
  * The analizeBackLinks method
  *
  * This method analyse the {@link googledancer::getBackLinks() googledancer::getBackLinks()} return value and
  * returns a float with the percentage probability that Google is dancing.
  * @param array $results {@link googledancer::getBackLinks() googledancer::getBackLinks()} return value
  * @return mixed it returns a float value with the percentage or false if it fails
  */
  
function analizeBackLinks ($results) {
    if (!
is_array ($results)) {
      return 
false;
    }
    
$diff_count 0;
    foreach (
$results as $domain => $values) {
      if (
is_array ($values) && isset ($values[$this->main_server])) {
        foreach (
$this->alt_servers as $server) {
          if (isset (
$values[$server]) && is_numeric ($values[$server]) && ($values[$server] > 0)) {
            
$diff_count += abs ($values[$this->main_server] - $values[$server]) / $values[$server];
          } else {
            return 
false;
          }
        }
      } else {
        return 
false;
      }
    }
    return 
$diff_count 100;
  }

  
/**
  * The getIndexedPages method
  *
  * This method returns an array with the indexed pages count about some important websites.
  * @param integer $timeout the timeout value used in the fsockopen function.
  * @return mixed it returns an array or false if it fails
  */
  // public function getIndexedPages ($timeout = 10) {
  
function getIndexedPages ($timeout 10) {
    
$result = array ();
    
$servers[] = $this->main_server;
    
$servers array_merge ($servers$this->alt_servers);
    foreach (
$this->domains as $domain) {
      foreach (
$servers as $server) {
        
$url 'http://' $server '/search?hl=en&ie=UTF-8&q=site%3A' urlencode ($domain);
        
$content $this->queryHTTP ($url);
        if (
$content !== false) {
          if (
preg_match ('/ of about <b>([\d,]*?)<\/b> from /si'$content$matches)) {
            
$result[$domain][$server] = str_replace (','''$matches[1]);
          } else {
            
$result[$domain][$server] = 0;
          }  
        }
      }
    }
    return 
$result;
  }

  
/**
  * The analizeIndexedPages method
  *
  * This method analyse the {@link googledancer::getIndexedPages() googledancer::getIndexedPages()} return value and
  * returns a float with the percentage probability that Google is dancing.
  * @param array $results {@link googledancer::getIndexedPages() googledancer::getIndexedPages()} return value
  * @return mixed it returns a float value with the percentage or false if it fails
  */
  
function analizeIndexedPages ($results) {
    if (!
is_array ($results)) {
      return 
false;
    }
    
$diff_count 0;
    foreach (
$results as $domain => $values) {
      if (
is_array ($values) && isset ($values[$this->main_server])) {
        foreach (
$this->alt_servers as $server) {
          if (isset (
$values[$server]) && is_numeric ($values[$server]) && ($values[$server] > 0)) {
            
$diff_count += abs ($values[$this->main_server] - $values[$server]) / $values[$server];
          } else {
            return 
false;
          }
        }
      } else {
        return 
false;
      }
    }
    return 
$diff_count 100;
  }
  
  
/**
  * The getResults method
  *
  * This method returns an array with the results of the given query.
  * @param string $keywords the keyword used for the query.
  * @param integer $resultcount the number fo results to grab (10, 20, 50, 100).
  * @param integer $timeout the timeout value used in the fsockopen function.
  * @return mixed it returns an array or false if it fails
  */
  
function getResults ($keywords ''$resultcount 10$timeout 10) {
    
$result = array ();
    
$servers[] = $this->main_server;
    
$servers array_merge ($servers$this->alt_servers);
    foreach (
$servers as $server) {
      
$url 'http://' $server '/search?hl=en&ie=UTF-8&q=' urlencode ($keywords);
      
$content $this->queryHTTP ($url);
      if (
$content !== false) {
        if (
preg_match_all ('/<p class=g><a href=(.*?) /si'$content$matches)) {
          
$result[$server] = $matches[1];
        } else {
          
$result[$server] = array ();
        }  
      }
    }
    return 
$result;
  }
  
  
/**
  * The analizeResults method
  *
  * This method analyse the {@link googledancer::getResults() googledancer::getResults()} return value and
  * returns a float with the percentage probability that Google is dancing.
  * @param array $results {@link googledancer::getResults() googledancer::getResults()} return value
  * @return mixed it returns a float value with the percentage or false if it fails
  */
  
function analizeResults ($results) {
    if (!
is_array ($results) || !isset ($results[$this->main_server])) {
      return 
false;
    }
    
$result_count 0;
    
$diff_result_count 0;
    
$diff_index_count 0;
    foreach (
$this->alt_servers as $server) {
      if (isset (
$results[$server])) {
        
$diff_result_count += count ($results[$server]) - count (array_intersect ($results[$this->main_server], $results[$server]));
        
$diff_index_count += count ($results[$server]) - count (array_intersect_assoc ($results[$this->main_server], $results[$server]));
        
$result_count += count ($results[$server]) * 2;
      } else {
        return 
false;
      }
    }    
    if (
$result_count == 0) {
      
$result 0;
    } else {
      
$result = ($diff_result_count $diff_index_count) / $result_count 100;
    }
    return 
$result;
  }

?>
Скопировать в буфер
Перед началом работ по продвижению сайта рекомендуется провести анализ содержимого сайта.

© Copyright 2008-2012 by KDG