rivlex
02-10-2008, 05:54 PM
Возможно ли в eSyndiCat сделать отображение и упорядочивание по тИЦ (индекс цитирования Яндекса) сайтов?
mgarkunov
02-11-2008, 06:42 PM
rivlex, вряд эта функция появится в eSyndiCat, так как тИЦ не в ходу на западе.
Можно попробовать самому забирать тИЦ через xml (адрес можно подсмотреть у SeoQuake, я не помню.)
Sergey Ten
02-12-2008, 04:06 AM
Привет,
Я почитал про тИЦ, это яндексовский аналог ПР :) даже алгоритм подсчета немного похож.
Попробую заинтегрить его в скрипт. :)
Vologdarest
02-12-2008, 09:52 AM
Привет,
Я почитал про тИЦ, это яндексовский аналог ПР :) даже алгоритм подсчета немного похож.
Попробую заинтегрить его в скрипт. :)
Было бы совсем не лишним, для русскоязычных пользователей скрипта. Важная функция, на которую многие обращают внимание.
Удачи.
Vologdarest
02-20-2008, 06:56 PM
Привет,
Вот примерно готовый рабочий код для определения ТиЦ, может его можно встроить в каталог?
КОД:
function get_yandex_tic($url, $proxy = '')
{
if ($url{strlen($url) - 1} == '/' || $url{strlen($url) - 1} == '\\')
$url = substr($url, 0, -1);
if (preg_match('/^www\./is', $url))
$url2 = $url . ',' . substr($url, 4);
else
$url2 = 'www.' . $url . ',' . $url;
$yandex_url = '/yca/cy/ch/' . $url . '/';
$host = 'search.yaca.yandex.ru';
$result = '';
if ($proxy == '')
{
$fp = @fsockopen($host, 80, $errno, $errstr, 20);
if ($fp)
{
$out = '';
$out .= "GET $yandex_url HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-icq, application/x-shockwave-flash, */*\r\n";
$out .= "Accept-Language: ru\r\n";
$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp))
$result .= fgets($fp, 1024);
fclose($fp);
}
}
else
{
preg_match('/^(?:http\:\/\/)?(.+)\:(\d{0,5})$/is', $proxy, $arr);
$ip = $arr[1];
$port = $arr[2];
$fp = @fsockopen($ip, $port, $errno, $errstr, 20);
if ($fp)
{
$out = '';
$out .= "GET http://$host$yandex_url HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-icq, application/x-shockwave-flash, */*\r\n";
$out .= "Accept-Language: ru\r\n";
$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp))
$result .= fgets($fp, 1024);
fclose($fp);
}
}
if (preg_match('/индекс цитирования (?:www\.)?(.+?)\s\<\/TITLE\>/is', $result, $arr))
$url2 = 'www.' . $arr[1] . ',' . $arr[1];
//фильтруем спец. символы preg_*
$url2 = preg_replace('/([^\w\d]|_)/is', '\\\\\\1', $url2);
if (preg_match("/$url2\&.+?\>(\d+)\<\/a\>/is", $result, $arr))
return intval(@$arr[1]);
else if (preg_match('/Индекс цитирования \(тИЦ\) ресурса..?меньше 10/is', $result))
return 0;
else
return '-';
}
function yandex_tic($url, $proxy = '')
{
if (!is_array($url))
$url = array($url);
$tic_arr = array();
foreach ($url as $key => $val)
{
if (preg_match('/^http\:\/\//is', $val))
$val = substr($val, 7);
$url_www = $val;
if (preg_match('/^www\./is', $val))
$val = str_replace('www.', '', $val);
else
$url_www = 'www.' . $val;
$tic = get_yandex_tic($val, $proxy);
$tic_www = get_yandex_tic($url_www, $proxy);
if ($tic_www > $tic)
$tic_arr[] = $tic_www;
else
$tic_arr[] = $tic;
}
rsort($tic_arr, SORT_NUMERIC);
return $tic_arr[0];
}
Было бы неплохо.. ))
Sergey Ten
02-21-2008, 11:18 AM
Vologdarest,
Спасибо за код. Я взгляну на него :)
vBulletin® v3.7.0, Copyright ©2000-2008, Jelsoft Enterprises Ltd.