Сервис SeoTools и вычисление PR и ТиЦ средствами PHP
Вот немного дописал и решил выставить на обозрение свой сервис SeoTools, на самом деле я не знаю стоит ли его развивать, хотелось бы сделать сервис по составлению отчетов для компаний предоставляющих услуги по SEO.
Идея!
Например, пользователь заходит на сервис, вбивает домен и предполагаемые ключевые слова (если таковые имеются), после чего сервис проверяет характеристики домена и наличие мест по ключевикам и предлагает другие варианты ключевиков, более подходящие для домена. Так же можно внедрить морфо-словари и предлагать схожие слова и т.д.
После чего формировать диаграммы и графики и рассчитывать примерный рост и т.д. То есть давать прогнозы!
Сервис
В данный момент, сервис опрашивает информацию линейно, поэтому может показаться что он изрядно притормаживает, однако ничего не стоит переписать его под параллельные обращения, но надо ли это сейчас...?
Вычисление PR
Как и обещал выкладываю класс по определению PR:
< ?php class googlePageRank { public static function get($url) { define("GOOGLE_MAGIC", 0xE6359A60); $url = 'info:'.$url; $ch = self::GoogleCH(self::strord($url)); $file = "http://www.google.com/search?client=navclient-auto&ch=6$ch&features=Rank&q=$url"; $data = seoTools::curlGetContent($file); return trim($data); } public static function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) { if (is_null($length)) { $length = sizeof($url); } $a = $b = 0x9E3779B9; $c = $init; $k = 0; $len = $length; while($len >= 12) { $a += ($url[$k + 0] + ($url[$k + 1] < < 8) + ($url[$k + 2] << 16) + ($url[$k + 3] << 24)); $b += ($url[$k + 4] + ($url[$k + 5] << 8) + ($url[$k + 6] << 16) + ($url[$k + 7] << 24)); $c += ($url[$k + 8] + ($url[$k + 9] << 8) + ($url[$k + 10] << 16) + ($url[$k + 11] << 24)); $mix = self::mix($a, $b, $c); $a = $mix[0]; $b = $mix[1]; $c = $mix[2]; $k += 12; $len -= 12; } $c += $length; switch($len) { case 11: $c += ($url[$k + 10] << 24); case 10: $c += ($url[$k + 9] << 16); case 9 : $c += ($url[$k + 8] << 8); /* the first byte of c is reserved for the length */ case 8 : $b += ($url[$k + 7] << 24); case 7 : $b += ($url[$k + 6] << 16); case 6 : $b+=($url[$k+5]<<8); case 5 : $b+=($url[$k+4]); case 4 : $a+=($url[$k+3]<<24); case 3 : $a+=($url[$k+2]<<16); case 2 : $a+=($url[$k+1]<<8); case 1 : $a+=($url[$k+0]); /* case 0: nothing left to add */ } $mix = self::mix($a,$b,$c); return $mix[2]; } public static function zeroFill($a, $b) { $z = hexdec(80000000); if ($z & $a) { $a = ($a>>1); $a &= (~$z); $a |= 0x40000000; $a = ($a>>($b-1)); } else { $a = ($a>>$b); } return $a; } public static function mix($a,$b,$c) { $a -= $b; $a -= $c; $a ^= (self::zeroFill($c,13)); $b -= $c; $b -= $a; $b ^= ($a<<8); $c -= $a; $c -= $b; $c ^= (self::zeroFill($b,13)); $a -= $b; $a -= $c; $a ^= (self::zeroFill($c,12)); $b -= $c; $b -= $a; $b ^= ($a<<16); $c -= $a; $c -= $b; $c ^= (self::zeroFill($b,5)); $a -= $b; $a -= $c; $a ^= (self::zeroFill($c,3)); $b -= $c; $b -= $a; $b ^= ($a<<10); $c -= $a; $c -= $b; $c ^= (self::zeroFill($b,15)); return array($a,$b,$c); } public static function strord($string) { for($i=0;$i<strlen($string);$i++) { $result[$i] = ord($string{$i}); } return $result; } } ?>
Пример использования,
require_once "googlePageRank.php"; function getPR ($url) { preg_match( '|Rank_(\d*):(\d*):(\d*)|i', googlePageRank::get($url), $PR ); return $PR[3]; } echo getPR(URL);
Где URL - это ваш домен для проверки.
Вычисление ТиЦ
А теперь вычислим Яндекс ТиЦ, для этого введем URL (ваш домен).
function getTCY ($url) { preg_match( '|<tcy\s+rang=["\']?(\d*)["\']?\s+value=["\']?(\d*)["\']?\s?/>|i', file_get_contents('http://bar-navig.yandex.ru/u?ver=2&url='.urlencode($url).'&show=1'), $TCY ); return $TCY[2]; } echo getTCY(URL);
Ну вот и все, есть вопросы? Добро пожаловать в камменты!
Мой ответ на Кратенько о том, как узнавать PR и CY
Комментарии
блин скока раз те говорить чтоб ты смотрел что публикуешь... << поправь в коде
Да смотрю я по 100 раз пока опубликую, не поправляется... Уже 3 раза обновлял, пойду искать где он там преобразовывает... :(
Решил с помощью опции “WordPress должен исправлять некорректный XHTML-код автоматически”, которая находится в Параметры -> Написание!
Теперь не преобразует :)
я б ваще отключил их парсер он тока мешает
Я отключил рич-едитор и эту опцию, фактически отключил весь "парсер" :)
а как его отключить?
Тут все я описал вчера... http://adw0rd.ru/2009/blog-refactoring/
ps. в конце поста
у тебя тиц и пр перепутаны местами
Где?
тут http://seo.adw0rd.ru/
Ничего не перепутано
хм а мне показал ПР = 0... у меня 2
Хотя для твоего домена, именно так как ты и говоришь... Странно, так то у тебя PR2
Может просто твой PR не может определить, а ТиЦ у тебя какой?
а я не знаю как проверить, мне впринципе на него пофиг всегда было
http://search.yaca.yandex.ru/yca/cy/ch/mabp.kiev.ua
Так что просто глючит PR
Достойный ответ! =)
Надо загнаться и "ответ на ответ" сделать =)
Ждать версию на C#? Смотри в рекурсию не войди :D
А как вы определяете html-форматирование?
http://pyha.ru/forum/topic/2136.msg37849#msg37849
и плюс <strong> сколько то там... потом распишу в самом сервисе...
интересная идея. а если бы еще там отступы, закрытые, открытые, классы, стоп - это уже валидатор.
"Оценка оптимизации" - это среднее значение всех параметров?
Да
Fatal error: Class 'seoTools' not found
Да упокоится он с миром!
Оставьте свой комментарий