Просмотр полной версии : Перестал работать скрипт
Везде где используется этот скрипт на сегоднишний день значения тиц = 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;
}
}
?>
$url=str_replace("http://","",$url);
$url=str_replace("http://","",$url);
Опечаточка вышла ....исправил в верхнем посте ....не работает именно так
а может яндекс забанил? я в полезных скриптах выкладывал функцию для работы с сокетами. найди и попробуй её.
У меня все работает.
<?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];
}
}
?>
Чтоб было яснее выложу почти весь скрипт. 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:
Нужна именно массовая проверка
Чего тупим? Я тебе переписал функцию на более рабочий вариант с регулярками, там всегда int будет.
$xx=intval(cy($url));
$xx=cy($url);
У меня заменишь:
return "Rang = {$matches[1]}, Value = {$matches[2]}";
на
return $matches[2];
Solker, огромное спс )))Ток теперь при тиц = 0 скрипт выдает пустое место а не ноль
тоесть
0) getcms.ru Pr: 1 тИЦ:
Ой, извиняюсь. Верни intval().
$xx=intval(cy($url));
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot