Jump to content
  • 0

Определение тИЦ с помощью php скрипта (?)


belcatalog.ru
 Share

Question

Нужно чтобы под каждой ссылочкой на сайт стоял его тИЦ в виде цифр (т.е. не на картинке)

Здесь описывают нечто подобное, но настроить не могу. http://www.tigir.com/php.htm

Выдает ошибку во 2 и 5 строке.

В данном примере пытался вызвать тИЦ для сайта http://www.kzr.ru

Очень надеюсь на подсказку:)

В php полный чайник...

<?

function getTCY('http://www.kzr.ru'.$url)

{

//считываем XML-файл с данными

$xml = file_get_contents('http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://www.kzr.ru'.$url);

//если XML файл прочитан, то возвращаем значение параметра value, иначе возвращаем false - ошибка

return $xml ? (int) substr(strstr($xml, 'value="'), 7) : false;

}

?>

Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0

<?php
echo getTCY('http://www.kzr.ru')."
";

// или как в исходнике http://www.tigir.com/php.htm
$tsite = 'http://www.tigir.com';
$tcy = getTCY($tsite);
echo "<a href="$tsite">$tsite - $tcy</a>";

function getTCY($url) {
//считываем XML-файл с данными
$xml = file_get_contents("http://bar-navig.yandex.ru/u?ver=2&show=32&url=$url");

//если XML файл прочитан, то возвращаем значение параметра value, иначе возвращаем false - ошибка
return $xml ? (int) substr(strstr($xml, 'value="'), 7) : false;
}
?>

+

в php.ini директива allow_url_fopen=On

Link to comment
Share on other sites

  • 0

Классно! Заработало! Только грузится недопустимо долго - секунд 30. Может быть патамушта php.ini не отредактировал... где искать php.ini не знаю:)(

вот такой код использую

<?php

echo getTCY('http://www.kzr.ru')."

";

function getTCY($url) {

//считываем XML-файл с данными

$xml = file_get_contents("http://bar-navig.yandex.ru/u?ver=2&show=32&url=$url");

//если XML файл прочитан, то возвращаем значение параметра value, иначе возвращаем false - ошибка

return $xml ? (int) substr(strstr($xml, 'value="'), 7) : false;

}

?>

Link to comment
Share on other sites

  • 0
Только грузится недопустимо долго - секунд 30. Может быть потому что php.ini не отредактировал... где искать php.ini не знаю:)(

А в PHP искать не надо. вставляем в браузер ссылку типа http://bar-navig.yandex.ru/u?ver=2&show=32...tp://www.kzr.ru и наслаждаемся тем же эффектом. видимо сам сервис загружен или канал связи очень узок или еще что такое что конечному пользователю неподвластно.

Link to comment
Share on other sites

  • 0

может кэшировать у себя? тиц ведь не скачет каждые 5 минут, так что пишем значения в базу и ставим таймстамп. при обращениях читаем из базы если таймстамп младше допустим 24 часов. если старше - обновляем

Link to comment
Share on other sites

  • 0
может кэшировать у себя? тиц ведь не скачет каждые 5 минут, так что пишем значения в базу и ставим таймстамп. при обращениях читаем из базы если таймстамп младше допустим 24 часов. если старше - обновляем

Да, это то что нужно! Вот как бы чайнику - мне разобраться в этом.. Может у кого-то есть пример кода или где-то в инете описывается подобная ситуация?

Link to comment
Share on other sites

  • 0

товарищи,

$data = implode( '', file( 'http://search.yaca.yandex.ru/yca/cy/ch/www.domain.zone/') );
preg_match( "# d+</b>#si", $data, $matches );
echo $matches[1];

не проще, не быстрее? регулярку не проверял, но вроде должна пропарсить to_pick_ones_nose3.gif и тоже можно кэшировать

Link to comment
Share on other sites

  • 0
PHP скрипт определения ТИц и PR

http://superadm.net/index.php?name=Files&o...ew_file&lid=153

Яндекс тИЦ работает точно так же долго и проблем не решает

2 NJSmith тогда уж так (имхо, среди одного результата искать проще):

<?php
echo "www.kzr.ru - ".getYandexTCY('www.kzr.ru')."
";
echo "www.yandex.ru - ".getYandexTCY('www.yandex.ru')."
";
echo "forum.htmlbook.ru - ".getYandexTCY('forum.htmlbook.ru')."
";

function getYandexTCY($url) {
$data = file_get_contents("http://search.yaca.yandex.ru/yandsearch?text=$url&rpt=rs2");
$tcy = preg_match("/ЦитируемостьD+(d+)./is", $data,$m);
return $m[1];
}
?>

Да, это то что нужно! Вот как бы чайнику - мне разобраться в этом. Может у кого-то есть пример кода или где-то в инете описывается подобная ситуация?

Если тИЦ вычисляется только для от 1 до 15 сайтов, то базу данных можно не использовать. а создавать текстовый файл yandex.txt вида: [сайт]t[время Unix]t[тИЦ]n , где t - символ табуляции, n - символ переноса строки. Все что нужно для обработки такого файла можно найти в русской документации по РНР с официального сайта в разделе "Функции для работы с файловой системой", а работа со временем в разделе - "Функции для работы с датой и временем".

Link to comment
Share on other sites

  • 0

2Yarik Voronov

http://search.yaca.yandex.ru/yca/cy/ch/www.siluetstudio.com/

http://search.yaca.yandex.ru/yandsearch?te...dio.com&rpt=rs2

оцени разницу :) сайт может не быть в каталоге яшки :) по уму бы там надо проверку, если по 1му варианту попадаем в каталог, идем по 2й сцыле

Link to comment
Share on other sites

  • 0

2 NJSmith, логично. имхо, я бы делал наоборот сначала поиск по каталогу потом прямой запрос, если по каталогу 0. исхожу из того что

тИЦ как средство определения авторитетности ресурсов призван обеспечить релевантность расположения ресурсов в рубриках каталога Яндекса

а уж потом

тИЦ можно измерить для всех ресурсов, на которые ссылается кто-либо из просканированных Яндексом ресурсов хотя бы раз

По большому счету, разницы принципиальной нет, где искать прежде. Разница в каких-то десятых долях килобайта ;) если судить по загруженным страницам

Link to comment
Share on other sites

  • 0
PHP скрипт определения ТИц и PR

http://superadm.net/index.php?name=Files&o...ew_file&lid=153

Яндекс тИЦ работает точно так же долго и проблем не решает

2 NJSmith тогда уж так (имхо, среди одного результата искать проще):

<?php
echo "www.kzr.ru - ".getYandexTCY('www.kzr.ru')."
";
echo "www.yandex.ru - ".getYandexTCY('www.yandex.ru')."
";
echo "forum.htmlbook.ru - ".getYandexTCY('forum.htmlbook.ru')."
";

function getYandexTCY($url) {
$data = file_get_contents("http://search.yaca.yandex.ru/yandsearch?text=$url&rpt=rs2");
$tcy = preg_match("/ЦитируемостьD+(d+)./is", $data,$m);
return $m[1];
}
?>

Да, это то что нужно! Вот как бы чайнику - мне разобраться в этом. Может у кого-то есть пример кода или где-то в инете описывается подобная ситуация?

Если тИЦ вычисляется только для от 1 до 15 сайтов, то базу данных можно не использовать. а создавать текстовый файл yandex.txt вида: [сайт]t[время Unix]t[тИЦ]n , где t - символ табуляции, n - символ переноса строки. Все что нужно для обработки такого файла можно найти в русской документации по РНР с официального сайта в разделе "Функции для работы с файловой системой", а работа со временем в разделе - "Функции для работы с датой и временем".

К сожалению не могу разобраться сам. Не могли бы Вы мне помочь с кодами кэширования ИЦ? Я готов немного заплатить.. например, рублей 200 на телефон или яндекс деньги забросить Вам.

Я делаю каталог сайтов, там на каждой страничке какраз сайтов по 15 будет.

Link to comment
Share on other sites

  • 0
на каждой страничке какраз сайтов по 15 будет.

а при чем тут каждая страница? данные ведь по всему вместе должны быть, из них идет выборка. так что если больше 50 сайтов - используй sql, это проще

Link to comment
Share on other sites

  • 0
на каждой страничке какраз сайтов по 15 будет.

а при чем тут каждая страница? данные ведь по всему вместе должны быть, из них идет выборка. так что если больше 50 сайтов - используй sql, это проще

Ну да. Так и делаем;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy