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