
28.11.2009, 01:57
|
|
Познавший АНТИЧАТ
Регистрация: 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($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
$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($url, PHP_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(), но куда уже её не тыкал, буфер не стирается) Хелп... куда её кидать то?
|
|
|