Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Перестал работать скрипт (https://forum.antichat.xyz/showthread.php?t=93861)

still12 28.11.2008 00:08

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

<?php

function cy($url)
{


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

 
$fp fsockopen("bar-navig.yandex.ru"80$errno$errstr30); 
  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($fp128); 
          } 
           
fclose($fp);  
          
         
$pos=strpos($data,"value")+7;
         
$itog=substr($data$pos5);
         
         
$itog=substr($itog0strpos($itog,'"'));
        
        return 
$itog;
         
     } 
     
    

}



?>


Solker 28.11.2008 00:18

PHP код:

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


still12 28.11.2008 00:27

Цитата:

Сообщение от Solker
PHP код:

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


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

mr.The 28.11.2008 00:32

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

Solker 28.11.2008 00:45

У меня все работает.
PHP код:

<?php

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

function 
cy($url)
{

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

$fp fsockopen("bar-navig.yandex.ru"80$errno$errstr30); 
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($fp128); 
      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

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$errstr30); 
  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($fp128); 
          } 
           
fclose($fp);  
          
         
$pos=strpos($data,"value")+7;
         
$itog=substr($data$pos5);
         
         
$itog=substr($itog0strpos($itog,'"'));
        
        return 
$itog;
         
     } 
     
    

}



?>

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

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

Solker 28.11.2008 02:15

Чего тупим? Я тебе переписал функцию на более рабочий вариант с регулярками, там всегда int будет.
PHP код:

$xx=intval(cy($url)); 

PHP код:

$xx=cy($url); 

У меня заменишь:
PHP код:

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

на
PHP код:

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));


Время: 13:03