Вот немного дописал и решил выставить на обозрение свой сервис SeoTools, на самом деле я не знаю стоит ли его развивать, хотелось бы сделать сервис по составлению отчетов для компаний предоставляющих услуги по SEO.
Идея!
Например, пользователь заходит на сервис, вбивает домен и предполагаемые ключевые слова (если таковые имеются), после чего сервис проверяет характеристики домена и наличие мест по ключевикам и предлагает другие варианты ключевиков, более подходящие для домена. Так же можно внедрить морфо-словари и предлагать схожие слова и т.д.
После чего формировать диаграммы и графики и рассчитывать примерный рост и т.д. То есть давать прогнозы!
Сервис
В данный момент, сервис опрашивает информацию линейно, поэтому может показаться что он изрядно притормаживает, однако ничего не стоит переписать его под параллельные обращения, но надо ли это сейчас...?
Вычисление PR
Как и обещал выкладываю класс по определению PR:
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;
}
}
?>
Пример использования,
function getPR ($url) {
preg_match(
'|Rank_(\d*):(\d*):(\d*)|i',
googlePageRank::get($url),
$PR
);
return $PR[3];
}
echo getPR(URL);
Где URL — это ваш домен для проверки.
Вычисление ТиЦ
А теперь вычислим Яндекс ТиЦ, для этого введем 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);
Ну вот и все, есть вопросы? Добро пожаловать в камменты!
Мой ответ на


блин скока раз те говорить чтоб ты смотрел что публикуешь... << поправь в коде
Да смотрю я по 100 раз пока опубликую, не поправляется... Уже 3 раза обновлял, пойду искать где он там преобразовывает... :(
Решил с помощью опции “WordPress должен исправлять некорректный XHTML-код автоматически”, которая находится в Параметры -> Написание!
Теперь не преобразует :)
я б ваще отключил их парсер он тока мешает
Я отключил рич-едитор и эту опцию, фактически отключил весь «парсер» :)
а как его отключить?
Тут все я описал вчера... adw0rd.ru/2009/blog-refactoring/
ps. в конце поста
у тебя тиц и пр перепутаны местами
Где?
тут seo.adw0rd.ru
Ничего не перепутано
>>>
Рейтинг в поисковых системах
Яндекс Ранг/ТиЦ 2/20
Google PR 3
хм а мне показал ПР = 0... у меня 2
Хотя для твоего домена, именно так как ты и говоришь... Странно, так то у тебя PR2
Может просто твой PR не может определить, а ТиЦ у тебя какой?
а я не знаю как проверить, мне впринципе на него пофиг всегда было
Так что просто глючит PR
Достойный ответ! =)
Надо загнаться и «ответ на ответ» сделать =)
Ждать версию на C#? Смотри в рекурсию не войди :D
А как вы определяете html-форматирование?
pyha.ru/forum/topic/2136.msg37849#msg37849
и плюс <strong> сколько то там... потом распишу в самом сервисе...
интересная идея. а если бы еще там отступы, закрытые, открытые, классы, стоп — это уже валидатор.
«Оценка оптимизации» — это среднее значение всех параметров?
Да