imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 11.10.2005, 19:41     # 1
psike
Guest
 
Сообщения: n/a

Проблема с PR google

взял готовый скрипт
набрал у себя в строке
http://www.server.ru/google.php?url=mail.ru

Выдает ошибку:
Warning: fopen(http://www.google.com/search?client=navclient-auto&ch=62689864930&features=Rank&q=info:http://mail.ru): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /home/mail/public_html/google.php on line 100

Не пойму в чем ошибка? Или что я неправильно делаю?


Цитата:
<?
define('GOOGLE_MAGIC', 0xE6359A60);

//unsigned shift right
function zeroFill($a, $b)
{
$z = hexdec(80000000);
if ($z & $a)
{
$a = ($a>>1);
$a &= (~$z);
$a |= 0x40000000;
$a = ($a>>($b-1));
}
else
{
$a = ($a>>$b);
}
return $a;
}

function mix($a,$b,$c) {
$a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
$b -= $c; $b -= $a; $b ^= ($a<<8);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
$b -= $c; $b -= $a; $b ^= ($a<<16);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));
$b -= $c; $b -= $a; $b ^= ($a<<10);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));

return array($a,$b,$c);
}

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) /* all the case statements fall through */
{
case 11: $c+=($url[$k+10]<<24);
case 10: $c+=($url[$k+9]<<16);
case 9 : $c+=($url[$k+8]<<8);
/* the first byte of c is reserved for the length */
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]);
/* case 0: nothing left to add */
}
$mix = mix($a,$b,$c);
/*-------------------------------------------- report the result */
return $mix[2];
}

//converts a string into an array of integers containing the numeric value of the char
function strord($string) {
for($i=0;$i<strlen($string);$i++) {
$result[$i] = ord($string{$i});
}
return $result;
}

function get_pr($url) {
$result=array("",-1);

if (($url.""!="")&&($url.""!="http://")):
// check for protocol
if (substr(strtolower($url),0,7)!="http://"):
$url="http://".$url;
endif;

$url="info:".$url;
$checksum=GoogleCH(strord($url));
$google_url=sprintf("http://www.google.com/search?client=navclient-auto&ch=6%u&features=Rank&q=".$url,$checksum); // url to get from google

$contents="";

$handle = fopen($google_url, "rb");
$contents = '';
while (!feof($handle)) {
$contents.= fread($handle, 8192);
}
fclose($handle);
$p=explode(":",$contents);
if (isset($p[2])):
$result[1]=$p[2];
endif;
endif;

return $result;
}

function getPR_url($url)
{
global $db;

if (eregi('^http://www.',$url)) {
$url_www = str_replace('http://www.','http://',$url);
} else {
$url_www = str_replace('http://','http://www.',$url);
}

$pr=get_pr($url);
$output=$pr[0];
$pagerank=$pr[1];
sleep(1);
$pr=get_pr($url_www);
$output_www=$pr[0];
$pagerank_www=$pr[1];

if ($pagerank<$pagerank_www) {
$pagerank=$pagerank_www;
}
if ($pagerank==-1) {
$pagerank=0;
}
return intval($pagerank);
}
echo $_GET['url'].' '.getPR_url($_GET['url']);
?>
 
Старый 11.10.2005, 20:36     # 2
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Google ругается вот на это место в коде:
Цитата:
client=navclient-auto
И советует прочитать правила __http://www.google.com/terms_of_service.html...
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.
Naked вне форума  
Старый 12.10.2005, 08:50     # 3
psike
Guest
 
Сообщения: n/a

Поставил client=IE6..
Все стало работать.. но у всех сайтов PR стал равен 0

Последний раз редактировалось psike; 12.10.2005 в 09:00.
 
Старый 18.10.2005, 14:39     # 4
SergoZD
::VIP::
 
Регистрация: 19.10.2003
Адрес: Питер
Пол: Male
Сообщения: 1 467

SergoZD Простой бог
SergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой богSergoZD Простой бог
psike
Надо писать как название_скрипта?url=http://site.ru
SergoZD вне форума  
Старый 11.03.2007, 20:34     # 5
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
А как вывести количество страниц, сайтов в базе и проиндексируемые страницы проверяемого сайта?
нак вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:24.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.