Дата: 2010-06-22 12:33:45
Комментариев: 1
После обновления php до версии 5.3.2 в скрипте по получению значения тИЦ и PR стала вылезать такая ошибка:
Deprecated: Function eregi() is deprecated in /var/www/ticpr.php

Исправим это. Для этого нужно заменить функцию "ereg" на "preg_match". То есть первоначально в скрипте была такая строка с функцией "ereg":
До
[...]
$GrabData = eregi("Rank_1:1:(.*)\n", $content, $DataPrint);
[...]
После
[...]
$GrabData = preg_match("/Rank_1:1:(.*)/\n", $content, $DataPrint);
[...]

А вот и сам скрипт по выводу значений тИЦ и PR:
$cat ticpr.php
<?
define('GOOGLE_MAGIC', 0xE6359A60);
function zeroFill($a, $b)
{
    $z = hexdec(80000000);
        if ($z & $a)
        {
            $a = ($a>>1);
            $a &= (~$z);
            $a |= 0x40000000;
            $a = (($a&0xffffffff)>>($b-1));
        }
        else
        {
            $a = (($a&0xffffffff)>>$b);
        }
        return $a;
}
 
function mix($a,$b,$c) {
$a -= $b; $a -= $c; $a ^= (zeroFill($c,13)); $a=(((0xffffffff-$a)&0xffffffff)+1)*(-1);
$b -= $c; $b -= $a; $b ^= ($a<<8)&0xffffffff;
$c -= $a; $c -= $b; $c ^= (zeroFill($b,13)); $c=(((0xffffffff-$c)&0xffffffff)+1)*(-1);
$a -= $b; $a -= $c; $a ^= (zeroFill($c,12)); $a=(((0xffffffff-$a)&0xffffffff)+1)*(-1);
$b -= $c; $b -= $a; $b ^= ($a<<16)&0xffffffff;
$c -= $a; $c -= $b; $c ^= (zeroFill($b,5)); $c=(((0xffffffff-$c)&0xffffffff)+1)*(-1);
$a -= $b; $a -= $c; $a ^= (zeroFill($c,3)); $a=(((0xffffffff-$a)&0xffffffff)+1)*(-1);
$b -= $c; $b -= $a; $b ^= ($a<<10)&0xffffffff;
$c -= $a; $c -= $b; $c ^= (zeroFill($b,15)); $c=(((0xffffffff-$c)&0xffffffff)+1)*(-1);
 
  return array($a,$b,$c);
}
 
function strord($string) {
    for($i=0;$i<strlen($string);$i++) {
        $result[$i] = ord($string{$i});
    }
    return $result;
}
 
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 9 : $c+=($url[$k+8]<<8);
        case 8 : $b+=($url[$k+7]<<24);
        case 7 : $b+=($url[$k+6]<<16);
        case 6 : $b+=($url[$k+5]<<8);
        case 5 : $b+=($url[$k+4]);
        case 4 : $a+=($url[$k+3]<<24);
        case 3 : $a+=($url[$k+2]<<16);
        case 2 : $a+=($url[$k+1]<<8);
        case 1 : $a+=($url[$k+0]);
    }
    $mix = mix($a,$b,$c);
    return $mix[2];
	}
 
function google_pr($url){
    $url = 'info:'.$url;
    $ch = GoogleCH(strord($url));
    $url = "http://toolbarqueries.google.com/search?client=navclient-auto&ch=6$ch&features=Rank&q=$url";
	if( $file = @file($url) ){
	    $content = implode($file);
	    if(empty($content)){
	        $num = 0;
	    }else{
	        $GrabData = preg_match("/Rank_1:1:(.*)/\n", $content, $DataPrint);
	        $info =  $DataPrint[1];
	        $num = $info;
	    }
	}
	else{
		$num = 'N/A';
	}
    return $num;
}
 
function get_download($url){
 
		$ret = false;
 
		if( function_exists('curl_init') ){
			if( $curl = curl_init() ){
 
				if( !curl_setopt($curl,CURLOPT_URL,$url) ) return $ret;
				if( !curl_setopt($curl,CURLOPT_RETURNTRANSFER,true) ) return $ret;
				if( !curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,30) ) return $ret;
				if( !curl_setopt($curl,CURLOPT_HEADER,false) ) return $ret;
				if( !curl_setopt($curl,CURLOPT_ENCODING,"gzip,deflate") ) return $ret;
 
				$ret = curl_exec($curl);
 
				curl_close($curl);
			}
		}
		else{
			$u = parse_url($url);
 
			if( $fp = @fsockopen($u['host'],!empty($u['port']) ? $u['port'] : 80 ) ){
 
			    $headers = 'GET '.  $u['path'] . '?' . $u['query'] .' HTTP/1.0'. "\r\n";
			    $headers .= 'Host: '. $u['host'] ."\r\n";
			    $headers .= 'Connection: Close' . "\r\n\r\n";
 
			    fwrite($fp, $headers);
			    $ret = '';
 
				while( !feof($fp) ){
					$ret .= fgets($fp,1024);
				}
 
				$ret = substr($ret,strpos($ret,"\r\n\r\n") + 4);
 
				fclose($fp);
			}
		}
 
		return $ret;
	}
 
function get_yandex($url){
 
	$ret = 'N/A';
 
	if( substr($url,0,7) != 'http://' )
		$url = 'http://' . $url;
 
	if( $content = get_download('http://bar-navig.yandex.ru/u?ver=2&url='. urlencode($url) .'&show=1&post=0') ){
 
		if( class_exists('SimpleXMLElement') ){
			if( $xmldoc = new SimpleXMLElement($content) ){
				$tcy = $xmldoc->tcy;
				if( !empty($tcy) ){
					$ret = $tcy['value'];
				}
			}
		}
		else{
			preg_match("/value=\"(.\d*)\"/",$content,$tic);
			if( !empty($tic[1]) ) $ret = $tic[1];
		}
	}
 
	return $ret;
 
}
 
$urlsite= 'daffin.ru';
 
echo "$urlsite: тИЦ ";
echo get_yandex("$urlsite");
echo " PR ";
echo google_pr("$urlsite");
?>
 

Файлы:
tic.tar.gz
теги: php

1 комментарий

2012-02-06 12:24:49 Дмитрий

pr уж не пашет

Оставить комментарий: