Скрипт определения ТИЦ

T7
На сайте с 12.01.2005
Offline
197
714

Создаю новую тему, потом как в теме /ru/forum/56377 не могу написать ответ.

Все время пишет: "Could not find phrase 'thread_replytime_expired'."

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];
}

Этот скрипт недвано перестал работать. Подскажите что необходимо переделать, чтобы он заработал?

Pavka
На сайте с 20.05.2005
Offline
82
#1


function GetXMLTree($file)
{

$data = file_get_contents($file) or die("Can't read file: ".$file);

$xml_parser = xml_parser_create();
xml_parse_into_struct($xml_parser, $data, $vals, $index);
xml_parser_free($xml_parser);

$items = array();
$level = 0;
$parents = array();

$items[0] = '';
$parents[] = &$items[0];

foreach ($vals as $xml_elem)
{
if ($xml_elem['type'] == 'open')
{
if($level>0 && array_key_exists('children',$parents[$level-1]))
{
$SubLevel = count($parents[$level-1]['children']);
}
else
{
$SubLevel = 0;
}

$cChild = 0;

$parents[$level] = &$parents[$level-1]['children'][$SubLevel];
$parents[$level]['name'] = strtolower($xml_elem['tag']);
$parents[$level]['type'] = 'complete';
$level++;

if(array_key_exists('attributes',$xml_elem))
{
$parents[$level-1]['attributes'] = $xml_elem['attributes'];
}
}

if($xml_elem['type'] == 'complete')
{
$parents[$level-1]['children'][$cChild]['name'] = strtolower($xml_elem['tag']);
$parents[$level-1]['children'][$cChild]['type'] = 'complete';
$parents[$level-1]['children'][$cChild]['value'] = $xml_elem['value'];

if(array_key_exists('attributes',$xml_elem))
{
$parents[$level-1]['children'][$cChild]['attributes'] = $xml_elem['attributes'];
}

$cChild++;
}

if($xml_elem['type'] == 'close')
{
$level--;
}
}

return $parents[0];
}
$tree = GetXMLTree("http://bar-navig.yandex.ru/u?ver=2&lang=1049&url=".$site_domain_name."&target=_No__Name:5&show=1&thc=0");
$site_icy = $tree['children'][1]['attributes']['VALUE'];

Где site_domain_name - имя домена, а в site_icy будет соответственно тИЦ :)

Без подписи
JasonBourne
На сайте с 25.09.2007
Offline
3
#2
Pavka:
http://bar-navig.yandex.ru/u?ver=2&lang=1049&url=".$site_domain_name."&target=_No__Name:5&show=1&thc=0

Можно поинтересоваться откуда ссылка? Может и для PR подобное есть? 🚬

[ remoter.ru - удаленная работа (http://remoter.ru) ] [ файлообменник, без рекламы (http://share.remoter.ru) ]
Pavka
На сайте с 20.05.2005
Offline
82
#3
JasonBourne:
Можно поинтересоваться откуда ссылка? Может и для PR подобное есть? 🚬

Ссылка от Яндекса :)

А если серьезно, то не помню где ее надыбал.. давно уже пользуюсь

Для PR к сожалению подобного нету.. в первом посте разве не рабочий вариант?

T7
На сайте с 12.01.2005
Offline
197
#4
Pavka
На сайте с 20.05.2005
Offline
82
#5

;)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий