Оригинал: Мусабеков Рустем

До недавнего времени для определения ТИЦ парсил страницу bar-navig.yandex.ru. Но теперь данный адрес отказывается выдавать информацию о сайтах не присутствующих в Яндекс.Каталоге. Даже не знаю как это объяснить, наверное снова их заморочки.
Как известно есть еще один адресок который дай бог выдает такую инфу. Вот собственно и он search.yaca.yandex.ru. Правда первый был более удобнее, так как выдавал только лиш цифры и информацию о том в какой категории находитса тот или иной сайт, что в свою очередь довольно сильно облегчает парсинг и снижает нагрузку и ненужный трафик.
Но куда в наше время деваться? Будем парсить что есть. В этом посте хочу привести очень полезную функцию для определение ТИЦа. А вы уже сами решите куда её использовать :)
Собственно она:

function yandex($url){
global $set;
$file=file_get_contents(”http://search.yaca.yandex.ru/yca/cy/ch/$url/”);
$file=iconv(”UTF-8″, “windows-1251″, $file);
///echo $file;
//Определение ТИЦ
$tica=preg_match(”!ресурса меньше (.*?).!si”,$file,$ok);
$tic=$ok[1];
if (trim($tic)==’10′) $tic=’0′;
if ( trim($tic)!=’0′ )
{
$tica=preg_match(”!ресурса — (.*?)!si”,$file,$ok);
$tic=$ok[1];
}
if ( trim($tic)==” )
{
$file=file_get_contents(”http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://$url”);
//Определение ТИЦ
$tica=preg_match(”!value=\”(.*?)\”!si”,$file,$ok);
$tic=$ok[1];
}
return $tic;
}

Расскажу по порядку. Во первых парсим мы нужный адресок, и обязательно меняем кодировку. Возможно на вашем сервере этого не понадобитса, но если не будет определятся, убираем коммент echo $file; для отладки. Видем каракули? Убираем функцию iconv : )
Первое что мы проверяем, есть ли вообще ТИЦ у проекта. Далее ветвление определяем, стоит ли узнавать точное значение, если переменная равна 0 то не стоит : ) Ну и если первым способом определить не выходит, используем второй.
Вот и все. Конечно функция довольно грузанутая, но результат стоит этого.