|
|
|
| В разделе downloads размещена новая версия счётчика PowerCounter 2.3.0. Особенностью этой версии является
1) Ввод, нового робота поисковой системы MSN (Спасибо Loki :)
2) Исправлена кодировка поисковых запросов Google
3) Устранены небольшие ошибки (недоучёт посетителей с операционной системой Macintosh, не отображение числа хитов в почасовой динамике для поисковых запросов с MSN и Mail.ru)
http://www.softtime.ru/info/powercounter20.php | |
|
|
|
|
|
|
|
для: cheops
(11.04.2005 в 10:58)
| | Робот MSN оказался не так прост: сегодня заходил его младшый братец
Microsoft URL Control - 6.00.8169
Так что может мы еще хлебнем его многоликости:( | |
|
|
|
|
|
|
|
для: Loki
(11.04.2005 в 17:49)
| | Мда... а вообще кто-нибудь этот поисковик видел, он хоть рабоает? | |
|
|
|
|
|
|
|
для: cheops
(11.04.2005 в 22:03)
| | Я заходил попробовать - ищет неплохо, все ссылки что выдавал были довольно свежие и релевантность неплохая. Другой вопрос что ссылок могло быть и поболе. Но я - лабораторная крыса, а ни одного юзера, пользующегося им, в дикой природе я не встречал:) | |
|
|
|
|
|
|
|
для: Loki
(11.04.2005 в 23:11)
| | ХО! У меня сегодня первый "дикий" переход с мелкософтовского поисковика... текст запроса в юникоде. | |
|
|
|
|
|
|
|
для: Loki
(12.04.2005 в 20:59)
| | К нам стабильно пару человек в день (из 1000) заходит - ищут только "договор о сотрудничестве" и "договор о намерениях", т.е. либо пользователи, либо поисковик повёрнут на деловую почву :)))
Да у него запрос практически точная копия Google (текущая версия 2.3.0 их корректно расшифровывает). | |
|
|
|
|
|
|
|
для: cheops
(12.04.2005 в 21:59)
| | Я бы и рад перейти, да у меня там уже такое хозяйство образовалось, что так просто и не бросишь... вот и пытаюсь параллельно с вами развивать... вы хоть намекните что будет в третьей версии и когда, а то может мне лучше вас подождать... побыть просто генераторам идей и отдельных фрагментов кода:)
Кстати, вы точку входа посмотрели? Напоминаю, зная вашу забывчивость:)
Поанализировал свои странички - теперь знаю какие именно надо "подтягивать". Жаль мне не удалось реализовать показ страниц с нулевым рейтингом. Надеюсь на ваш совет. | |
|
|
|
|
|
|
|
для: Loki
(12.04.2005 в 22:17)
| | А вы просто в файле searchquery.php замените у Google и MSN строку
<?php
if(strpos($ip['name'],"UTF-8")!=null) $tmpstr = utf8_win($query[1]);
else $tmpstr = $query[1];
?>
|
на
<?php
$tmpstr = utf8_win($query[1]);
?>
|
Там в двух местах, для одного поисковика и для всех вкупе в конце файла.
PS Точку входа не посмотрел :))) у меня завтра спокойный день - не в разбегах, а весь день за машиной - вот и посмотрю. | |
|
|
|
|
|
|
|
для: cheops
(12.04.2005 в 22:55)
| | Если там все правильно, то можно к этому отчету и точку выхода будет прикрутить - отличается только одним параметром sql запроса:) | |
|
|
|
|
|
|
|
для: cheops
(12.04.2005 в 22:55)
| | Эта функция utf8_win - достаточно громоздка и делает много лишней работы ( 72 раза запускается сканирование строки ).
Конвертировать из UTF-8 в кириллицу можно еще и более простым способом (всего две строчки) :
$str = iconv("UTF-8","ISO-8859-5",$str);
$str = convert_cyr_string ($str, "i", "w"); | |
|
|
|
|
|
|
|
для: human
(14.04.2005 в 13:45)
| | Библиотека iconv, к сожалению не на всех серверах стоит :((( Если бы сейчас везде был PHP 5, где она входит в ядро, тогда бы забот не было. | |
|
|
|
|
|
|
|
для: cheops
(14.04.2005 в 23:02)
| | Ну да, именно поэтому в новой (очень толстой) книжке уважаемых авторов ( про PHP5 !!! ) приведен текст этой функции из 72-х строчек str_replace()... :-)
Проверить, установлена ли на сервере библиотека iconv очень просто: выполнить phpinfo и поискать табличку с заголовком iconv, содержащую строчку "iconv support enabled"
Но даже если этой библиотеки нет почему-то на сервере - ничто не мешает использовать ее на локальном.
Для Windows эта библиотека называется iconv.lib и она есть в PHP4.
Хотя с ее подключением есть некоторые хитрости (впрочем, возможно, что про это где-то уже написано, но мне пришлось поразбираться, о чем и расскажу).
В php.ini нужно раскомментировать строчку "extension=php_iconv.dll"
Но оказывается, что этого недостаточно. PHP будет ругаться, что не может найти
файл php_iconv.dll, хотя такой файл на самом деле есть в каталоге php\extension .
Для полноты счастья нужно еще скопировать из каталога php\dlls файл iconv.dll
в системный каталог Windows (обычно это SYSTEM32).
Ну вот, теперь можно читать тексты даже на японском языке...:-)
Не говоря уж о всем знакомых строчках, наполовину состоящих из буквы "Р" . | |
|
|
|
|
|
|
|
для: human
(15.04.2005 в 08:28)
| | Люди счетчик отличный но имеет очень существенный недостаток !!!
Сделайте раздел ссылающиеся страницы, чтоб можно было глянуть кто и с какой страницы пришол ссылку на ту страницу. Допустим если с яндекса то ссылка ведет на определенный запрос с которого к вам пришли, вобщем такая очень полезная функция есть в HotLog если вы это добавите то цены вашему счетчику не будет !!! :) | |
|
|
|
|
|
|
|
для: Олег
(15.04.2005 в 10:06)
| | Замените в файле searchquery.php конструкцию switch следующим образом:
<?
switch($srch)
{
case 'yandex':
{
while($ip = mysql_fetch_array($qwr))
{
eregi("text=([^&]*)", $ip['name']."&", $query);
if(strpos($ip['name'],"yandpage")!=null)
echo "<tr>
<td><a href='".$ip['name']."' target=_blank>".convert_cyr_string(urldecode($query[1]),"k","w")."</a></td>
<td>Yandex</td>
<td>".$ip['putdate']."</td>";
else
echo "<tr>
<td><a href='".$ip['name']."' target=_blank>".$query[1]."</a></td>
<td>Yandex</td>
<td>".$ip['putdate']."</td>";
print_ip($ip['ip'],$begin,$end);
echo "<td><a href=http://".$_SERVER["SERVER_NAME"].$ip['url'].">
".$ip['name']."</a></td></tr>";
}
break;
}
case 'rambler':
{
while($ip = mysql_fetch_array($qwr))
{
eregi("words=([^&]*)", $ip['name']."&", $query);
echo "<tr>
<td><a href='".$ip['name']."' target=_blank>".$query[1]."</a></td>
<td>Rambler</td>
<td>".$ip['putdate']."</td>";
print_ip($ip['ip'],$begin,$end);
echo "<td><a href=http://".$_SERVER["SERVER_NAME"].$ip['url'].">
".$ip['name']."</a></td></tr>";
}
break;
}
case 'google':
{
while($ip = mysql_fetch_array($qwr))
{
eregi("q=([^&]*)", $ip['name']."&", $query);
if(strpos($ip['name'],"UTF-8")!=null) $tmpstr = utf8_win($query[1]);
else $tmpstr = $query[1];
echo "<tr><td><a href='".$ip['name']."' target=_blank>".$tmpstr."</a></td><td>Google</td><td>".$ip['putdate']."</td>";
print_ip($ip['ip'],$begin,$end);
echo "<td><a href=http://".$_SERVER["SERVER_NAME"].$ip['url'].">
".$ip['name']."</a></td></tr>";
}
break;
}
case 'aport':
{
while($ip = mysql_fetch_array($qwr))
{
eregi("r=([^&]*)", $ip['name']."&", $query);
echo "<tr><td><a href='".$ip['name']."' target=_blank>".$query[1]."</a></td><td>Aport</td><td>".$ip['putdate']."</td>";
print_ip($ip['ip'],$begin,$end);
echo "<td><a href=".$_SERVER["SERVER_NAME"].$ip['url'].">
".$ip['name']."</a></td></tr>";
}
break;
}
case 'total':
{
while($ip = mysql_fetch_array($qwr))
{
if($ip['searches'] == "yandex")
{
eregi("text=([^&]*)", $ip['name']."&", $query);
if(strpos($ip['name'],"yandpage")!=null)
$query[1] = convert_cyr_string(urldecode($query[1]),"k","w");
}
if($ip['searches'] == "rambler") eregi("words=([^&]*)", $ip['name']."&", $query);
if($ip['searches'] == "aport") eregi("r=([^&]*)", $ip['name']."&", $query);
if($ip['searches'] == "google")
{
eregi("q=([^&]*)", $ip['name']."&", $query);
if(strpos($ip['name'],"UTF-8")!=null) $query[1] = utf8_win($query[1]);
}
echo "<tr><td><a href='".$ip['name']."' target=_blank>".$query[1]."</a></td><td>".$ip['searches']."</td><td>".$ip['putdate']."</td>";
print_ip($ip['ip'],$begin,$end);
echo "<td><a href=http://".$_SERVER["SERVER_NAME"].$ip['url'].">
".$ip['name']."</a></td></tr>";
}
break;
}
} // Конец оператора switch
?>
|
И вашему счетчику не будет цены;) | |
|
|
|
|
|
|
|
для: Loki
(15.04.2005 в 16:03)
| | Наконец-то дошли руки до программирования:)
Из отловленных в вашем варианте счетчика блох:
1. в условии
if(strpos($useragent, "Macintosh")!== false
|| strpos($useragent, "PowerPC") $os = 'macintosh';
|
Пропущена закрывающая скобка. Файл count.php
2. Что касается новых поисковиков: во многих местах, переменные прописаны, а вывода их на экран - нет. Уже не припомню все места, но файлы searchhours и searchdays - железно.
3. В файле utils.php в двух местах стоит заглушка
// Во избежание деления на 0 проверяем значение общего $total
if($total == 0) $total = 1;
|
Видимо, была идея отображать проценты, но этот фрагмент так и не задействован, а на корректное отображение данных влияет.
4. Тут я сам не очень понимаю: в переключателе case 'total': нет условия if($ip['searches'] == "msn"). На самом деле работает и без него, но меня смущает то, что остальные поисковики присутствуют.
В общем, это то, что отложилось в голове. Было и еще что-то, но более мелкое и незначительное.
Ушел переделывать форум:) | |
|
|
|
|
|
|
|
для: Loki
(23.04.2005 в 00:59)
| | 1. Ага было такое дело, уже давно поправил.
2. Буду смотреть.
3. Ну эту перестраховку пользователь невооружённым взглядом увидит, так как все остальные будут 0, боюсь править чтобы хуже не было.
4. Он вместе с Google выводится if(($ip['searches'] == "google") || ($ip['searches'] == "msn")) | |
|
|
|
|
|
|
|
для: Loki
(23.04.2005 в 00:59)
| | 2. Поправил. | |
|
|
|
|
|
|
|
для: cheops
(23.04.2005 в 11:48)
| | Сегодня мне яндекс рефферера в юникоде выплюнул... похоже, скоро придется конвертировать запросы от всех поисковиков... | |
|
|
|
|
|
|
|
для: Loki
(23.04.2005 в 22:38)
| | Хм... будем следить, может кто просто засобачил юникод строку? Умельцев, которые используют движки поисковиков для своих нужд много... хотя может и на новый движок переходят, чёрт их знает. | |
|
|
|