Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проблема с выводом роезультата.


Автор: zircool 15.3.2008, 15:02
Доброго дня... Написал скрипт для чека сайтов на PR, скрипт чекает сайты, которые берёт из Teatarea, и затем поочерёдно спроверяет каждый сайт и выводит(должен так работать), но скрипт работает некорректно, отображает отображает результат всей проверки всех сйтов но значение пр у всех сайтов первого результата.... Вот сам скрипт, посоветуйте как его изменить... 

Код

<?php
Error_Reporting(E_ALL & ~E_NOTICE); 
echo "<form method='get'>
             <textarea rows=15 cols=45 name=str></textarea></br>
                   </br>
                <input type='submit' name='sub' value='Go!' /><br/>
            </form>";



 if(isset($_GET['sub']))
{
$img="";
$zapros=$_GET['str'];
$hosts=explode("\r\n", trim($zapros));
for ($i=0;$i<count($hosts);$i++)
{
$sock=@fsockopen("www.be1.ru",80);
if(!$sock) die("fsockopen() error.");
{
fputs($sock,
"GET /stat/?url=http%3A%2F%2F".$hosts[$i]."%2F HTTP/1.0\r\n".
            "Host: www.be1.ru\r\n".
            "Referer: http://www.be1.ru\r\n\r\n"
);  
  
while(!feof($sock))
    {
        $img .= fgets($sock, 1024);
        } 

fclose($sock); 
 $pos = strpos($img, "Google Page Rank");   
 $got=substr($img,$pos,20);

}  
  
print "Сайт: $hosts[$i]<br>";
print       "$got<br>";

}
}





?>
  

Автор: DioNiR 16.3.2008, 00:58
В каждом цикле у нас пишется:
Код
$img .= fgets($sock, 1024);

Когда переменная была создана до цикла:
Код
$img="";

Выходит что каждый раз в цикле у нас дозаписываются данные в переменную и ты снова ищешь то что было в предыдущем.
Код
$img="";

Ставим в цикл и работает:
Код
<?php
echo "<form method='get'>
             <textarea rows=15 cols=45 name=str></textarea></br>
                   </br>
                <input type='submit' name='sub' value='Go!' /><br/>
            </form>";
            
    if(isset($_GET['sub']))
    {
        $zapros=$_GET['str'];
        $hosts=explode("\r\n", trim($zapros));
        for ($i=0;$i<count($hosts);$i++)
        {
            $img="";
            $sock=@fsockopen("www.be1.ru",80);
            if(!$sock) die("fsockopen() error.");
            {
                fputs($sock,
                    "GET /stat/?url=http%3A%2F%2F".$hosts[$i]."%2F HTTP/1.0\r\n".
                    "Host: www.be1.ru\r\n".
                    "Referer: http://www.be1.ru\r\n\r\n"
                );  
                while(!feof($sock))
                {
                    $img .= fgets($sock, 1024);
                } 

                fclose($sock); 
                $pos = strpos($img, "Google Page Rank");   
                $got=substr($img,$pos,20);
            }  
            print "Сайт: $hosts[$i]<br>";
            print       "$got<br>";
        }
    }
?>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)