Автор Тема: Избранное & favicon.ico & PHP  (Прочитано 7884 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Избранное & favicon.ico & PHP
« : 18 Июня 2002, 13:12:43 »
Как можно отлавливать что у меня юзер favicon.ico выпрашивает? (эт для того что бы знать сколько человек мой сайт в избранное добавили)
Ща я так смотрю:
Заглядываю в error.log. Если там есть такая строчка:
[error] [client 80.237.8.36] File does not exist: /web/autodealer/site/www/addsite/autodiler.ru/favicon.ico
Значит юзер добавил сайт в избранное.
НО ЭТО ИЗВРАТ.
« Последнее редактирование: 18 Июня 2002, 15:45:54 от Alexandr »
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Избранное & favicon.ico & PHP
« Ответ #1 : 18 Июня 2002, 14:48:36 »
Alexandr
Первое что пришло в голову:

<?
$data=file("error.log");
for(
$i=0;$i<sizeof($data);++$i)
{
list(
$date,$type,$client,$error)=split(" ",$data[$i]);
if(
ereg("favicon.ico",$error){print "Типа $client в $date решил проверить на наличие иконки";}
}
?>
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Избранное & favicon.ico & PHP
« Ответ #2 : 18 Июня 2002, 15:44:27 »
Не покатит.
favicon.ico мне надо на сайт кинуть, что бы иконка в IE была, а следовательно в ерор.логе её не будет.
И ещё твой скрипт придётся запускать по расписанию.
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Избранное & favicon.ico & PHP
« Ответ #3 : 18 Июня 2002, 17:47:08 »
Alexandr
Капля воображения и скрипт переписывается под access.log:

<?
$data=file("access.log");
for(
$i=0;$i<sizeof($data);++$i)
{
if(
ereg("(.*) - (.*) - [(.*)] - \\"(.*)\\" - (.*) - (.*)",$data[$i],$regs))
{
if(
ereg("favicon.ico",$regs[4]){print "Типа $regs[1]($regs[2]) в $regs[3] решил проверить на наличие иконки";}
}
}
?>
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

  • Гость
Избранное & favicon.ico & PHP
« Ответ #4 : 19 Июня 2002, 13:13:49 »
Цитировать
Заглядываю в error.log. Если там есть такая строчка:
[error] [client 80.237.8.36] File does not exist: /web/autodealer/site/www/addsite/autodiler.ru/favicon.ico
Значит юзер добавил сайт в избранное.

бред.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Избранное & favicon.ico & PHP
« Ответ #5 : 19 Июня 2002, 13:34:32 »
Unregistered
Почему же?
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

  • Гость
Избранное & favicon.ico & PHP
« Ответ #6 : 21 Июня 2002, 03:21:16 »
Цитировать
Unregistered
Почему же?

по жизни.
берем, например, мозиллу. И идем, например, на http://sourceforge.net/
ждем окончания загрузки страницы и любуемся на красивенький кружочек в адресной строке.
В избранное, ес-сно, не добавляем.
Имя файла с этим кружочком сказать, или сами догадаетесь?


WBR,
  Voodoo
http://voc.sf.net/

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Избранное & favicon.ico & PHP
« Ответ #7 : 21 Июня 2002, 07:51:09 »
Оффтопик.
ОЧЕНЬ неоптимальный алгоритм.
На каждую строку напускается два ерега, один из которых не нужен вовсе.
Куда быстрее будет проверять по strstr() наличие в строке "favicon.ico" и только в этом случае натравливать ерег.

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Избранное & favicon.ico & PHP
« Ответ #9 : 21 Июня 2002, 08:31:55 »
ЖУТЬ!
он не неоптимаьный! Он вообще нерабочий.

list($micro,$time)=explode(" ",microtime());
$stamp=$micro+$time;
$data=file("log.txt");
for(
$i=0;$i<200;$i++)
{
if(
ereg("(.*) - - \\[(.*)\\] \\"(.*)\\" (.*) \\"(.*)\\" \\"(.*)\\"",$data[$i],$regs))
{
if(
ereg("styles.css",$regs[3])){print "Типа $regs[1] в $regs[2] решил проверить на наличие иконки
"
;}
}
}
list(
$micro,$time)=explode(" ",microtime());
echo (
$micro+$time)-$stamp;

Только 200 итераций он деает 8 секунд!!!
А вот это

$data
=file("log.txt");
for(
$i=0;$i<sizeof($data);$i++) {
  if(
strstr($data[$i],"styles.css")) {
    if(
ereg("(.*) - - \\[(.*)\\] \\"(.*)\\" (.*) \\"(.*)\\" \\"(.*)\\"",$data[$i],$regs)) echo "Типа $regs[1] в $regs[2] решил проверить
"
;
  }
}

отработало за секунду, а весь лог в 400к - за 12.
Честно говоря, я не ожидал такой огромной разницы.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Избранное & favicon.ico & PHP
« Ответ #10 : 21 Июня 2002, 08:35:43 »
идем дальше.
Вспоминаем, что ереги медленнее прегов.
Пишем
if(preg_match("/(.*) - - \\[(.*)\\] \\"(.*)\\" .*/",$data[$i],$regs))
И получаем приемлемый результат - 0.2 секунды на весь файл.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Избранное & favicon.ico & PHP
« Ответ #11 : 21 Июня 2002, 08:41:27 »
Справедливости ради, надо признать, что если проверять прегом даже каждую строчку, то все равно получается быстро. Но это не оправдание писать неоптимальные прогаммы :-)

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Избранное & favicon.ico & PHP
« Ответ #12 : 21 Июня 2002, 11:38:00 »
access.log У меня весит 10 мегов.
Так что не покатит.
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Избранное & favicon.ico & PHP
« Ответ #13 : 21 Июня 2002, 12:12:14 »
У тебя не катит даже не по этой причине.
См. сообщение от YA

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Избранное & favicon.ico & PHP
« Ответ #14 : 24 Июня 2002, 08:58:25 »
Цитировать
У тебя не катит даже не по этой причине.
См. сообщение от YA

Ну можно же базу по IP\'шникам подбивать.
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28