Показать сообщение отдельно

  #6  
Старый 28.11.2009, 01:57
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами: 9410786

Репутация: 2731


По умолчанию

PHP код:
<?php

set_time_limit
(0);

function 
flush_buffers()
{
    
ob_end_flush();
    @
ob_flush();
    
flush();
    
ob_start();
}

function 
get_page($url)
{
    
$ch curl_init($url);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION0);
    
$res curl_exec($ch);
    return 
$res;

}

function 
check_cypr($hostname)
{
    
$sign get_sign($hostname);
    
$pr_cy get_page('http://www.cy-pr.com/ajax/ajax.php?dod=cypr&url=' $hostname .
        
'&site_signature=' $sign);

    
preg_match('#(\d+)\|.*\|(\d+)\|.*#'$pr_cy$pr_cy);
    return array(
'pr' => $pr_cy[2], 'cy' => $pr_cy[1]);
}

function 
get_sign($hostname)
{
    
$res get_page('http://www.cy-pr.com/analysis/' $hostname);

    
preg_match('#var site_signature = "([a-z0-9]{32})";#i'$res$sign);
    return 
$sign[1];

}

?>

<html>

<head>
<title>Mass PR & CY checker</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>

<form action="" method="POST">
<table class="f_second" align="center">
<tr><td class="f_second">Введите список сайтов в поле ниже</td>
<tr><td class="f_first"><textarea name="sites" rows="10" cols="110"></textarea></td>
<tr><td colspan="2"><input type="submit" name="check" value="Проверить" class="button"/></td>
</table>
</form>
<table class="second" align="center">
<?php

if (isset($_POST['check']))
{

    echo 
'<tr><td>Сайт</td><td>PR</td><td>тИЦ</td>';
    
$arrays array_unique(explode("\r\n"$_POST['sites']));
    
sort($arrays);
    
$urls array_map('trim'$arrays);
    
$_url = array();
    foreach (
$urls as $url)
    {
        
$url parse_url($urlPHP_URL_HOST);
        if (!
in_array($url$_url))
        {
            
$vars check_cypr($url);
            echo 
'<tr><td class="second">' $url '</td><td class="first">' $vars['pr'] .
                
'</td><td class="first">' $vars['cy'] . '</td>';
            
$_url[] = $url;
        }
    }
}
exit;

?>
</table>

</html>
Набыдлокодил я такой код) Но в PHP есть траблы какие-то с буферизацией, то есть я ввел 500 сайтов, и мне придется ждать, пока все сайты проверит, аж тогда выведется результат. Но мне надо, чтобы выводило по мере проверки, то есть проверило 1 сайт - вывело строчку с этим сайтом и т.д... , поэтому набыдлокодил я такую ф-цию, как flush_buffers(), но куда уже её не тыкал, буфер не стирается) Хелп... куда её кидать то?
 
Ответить с цитированием