PDA

Просмотр полной версии : Перестал работать скрипт


still12
28.11.2008, 00:08
Везде где используется этот скрипт на сегоднишний день значения тиц = 0. Что в нем не так ? Исправте плз))Раньше все норм было
<?php

function cy($url)
{


$url=str_replace("http://","",$url);

$fp = fsockopen("bar-navig.yandex.ru", 80, $errno, $errstr, 30);
if (!$fp) { return FALSE; }
else {
$out = "GET /u?ver=2&url=http://$url/&show=1 HTTP/1.1\r\n" ;
$out .= "Host: bar-navig.yandex.ru\r\n" ;
$out .= "Connection: Close\r\n\r\n" ;
fwrite($fp, $out);

$data="";
while (!feof($fp)) {
$data .= fgets($fp, 128);
}
fclose($fp);

$pos=strpos($data,"value")+7;
$itog=substr($data, $pos, 5);

$itog=substr($itog, 0, strpos($itog,'"'));

return $itog;

}



}



?>

Solker
28.11.2008, 00:18
$url=str_replace("http://","",$url);

still12
28.11.2008, 00:27
$url=str_replace("http://","",$url);

Опечаточка вышла ....исправил в верхнем посте ....не работает именно так

mr.The
28.11.2008, 00:32
а может яндекс забанил? я в полезных скриптах выкладывал функцию для работы с сокетами. найди и попробуй её.

Solker
28.11.2008, 00:45
У меня все работает.
<?php

echo cy("www.google.ru");

function cy($url)
{

$url = str_replace("http://","",$url);

$fp = fsockopen("bar-navig.yandex.ru", 80, $errno, $errstr, 30);
if (!$fp) return FALSE;
else {
$out = "GET /u?ver=2&url=http://$url/&show=1 HTTP/1.1\r\n" ;
$out .= "Host: bar-navig.yandex.ru\r\n" ;
$out .= "Connection: Close\r\n\r\n" ;

fwrite($fp, $out);
while (!feof($fp)) {
$date = fgets($fp, 128);
if(strpos($date,"rang")) break;
}
fclose($fp);

preg_match('#rang="(.*?)" value="(.*?)"#', $date, $matches);

return "Rang = {$matches[1]}, Value = {$matches[2]}";
//return $matches[2];
}
}

?>

still12
28.11.2008, 02:05
Чтоб было яснее выложу почти весь скрипт. Pr определяет на ура а вот с тиц проблемы...(всегда 0)

Файл index.php

<html><head><title>Проверка</title></head>
<body>
<br>
<?php
//error_reporting(0);

include("./goo.php");
include("./cy.php");

if (isset($_POST['ok']))
{
$arr=explode("\n",$_POST['area']);
echo "<ul>";
foreach ($arr as $k=>$url)
{
$url=trim($url);
if ($url=='') continue;
echo $k.") ".$url." ";

$xx=intval(cy($url));
$prr=getPageRank($url);
echo "Pr: <b>$prr</b>";
echo "тИЦ: $xx<br>";

flush();
}
//end foreach





}
?>
<b><br>Проверить список имен на PR & ТИЦ</b>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<textarea name="area" rows=7 cols=35></textarea>

<br>
<input type="submit" name="ok" value="Проверить!">
</form>
<br>
<br>
<a href="http://kreved.name">йА Кревед</a>
</body></html>


Файл cy.php
<?php

function cy($url)
{


$url=str_replace("http://","",$url);

$fp = fsockopen("bar-navig.yandex.ru", 80, $errno, $errstr, 30);
if (!$fp) { return FALSE; }
else {
$out = "GET /u?ver=2&url=http://$url/&show=1 HTTP/1.1\r\n" ;
$out .= "Host: bar-navig.yandex.ru\r\n" ;
$out .= "Connection: Close\r\n\r\n" ;
fwrite($fp, $out);

$data="";
while (!feof($fp)) {
$data .= fgets($fp, 128);
}
fclose($fp);

$pos=strpos($data,"value")+7;
$itog=substr($data, $pos, 5);

$itog=substr($itog, 0, strpos($itog,'"'));

return $itog;

}



}



?>
ну думаю goo.php нет нужды выкладывать ибо пр определяется всегда верно

Помогите востановить работу скрипта :confused:
Нужна именно массовая проверка

Solker
28.11.2008, 02:15
Чего тупим? Я тебе переписал функцию на более рабочий вариант с регулярками, там всегда int будет.
$xx=intval(cy($url));
$xx=cy($url);
У меня заменишь:
return "Rang = {$matches[1]}, Value = {$matches[2]}";
на
return $matches[2];

still12
28.11.2008, 02:39
Solker, огромное спс )))Ток теперь при тиц = 0 скрипт выдает пустое место а не ноль
тоесть
0) getcms.ru Pr: 1 тИЦ:

Solker
28.11.2008, 03:09
Ой, извиняюсь. Верни intval().
$xx=intval(cy($url));