Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

20.03.2008, 00:24
|
|
Постоянный
Регистрация: 21.08.2007
Сообщений: 367
Провел на форуме: 3578960
Репутация:
468
|
|
Сообщение от temp_late
Хочу написать скрипт статистики посещаемости, под какими браузерами и под какими системами пользователи бывают на сайте, при обнаружение например нового браузера которого нету в базе статистике, он дабавляется туда.
так те помощь нужна, если да то конкретнее в чем помочь? или это констатация факта?)
|
|
|

20.03.2008, 00:28
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
Сообщение от Timati
посоветуйте что нибудь для новичка почитать
http://phpclub.ru/
|
|
|

20.03.2008, 02:10
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
Сообщение от life_is_shit
так те помощь нужна, если да то конкретнее в чем помочь? или это констатация факта?)
ага, решил поделиться самыми откровенными мечтами))
по сабжу:
PHP код:
$agent = htmlspecialchars(stripslashes(getenv("HTTP_USER_AGENT")));
if (strpos($agent, "MSIE") == true)
{
$brodilka = 'IE';
}
elseif(strpos($agent, "Opera") == true)
{
$brodilka = 'Opera';
}
elseif(strpos($agent, "Firefox") == true)
{
$brodilka = 'Firefox';
}
elseif(....) #Другие браузеры
else
{
$brodilka = '...'; #Берём название браузера (хз как правда)
}
$sql = mysql_query("SELECT * FROM `table` WHERE `colnum_name` = '".$brodilka."'");
if(mysql_num_rows($sql) == 0)
{
#Добавляем новый браузер
mysql_query("INSERT INTO `table` VALUE(.....)");
}
Короче потипу того. Дальше сам))
А уж статистику писать эт как нефиг делать) Если трудности то бери любо скрипт и смотри как там сделано))
|
|
|

20.03.2008, 03:09
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Сообщение от .:EnoT:.
ага, решил поделиться самыми откровенными мечтами))
по сабжу:
PHP код:
$agent = htmlspecialchars(stripslashes(getenv("HTTP_USER_AGENT")));
if (strpos($agent, "MSIE") == true)
{
$brodilka = 'IE';
}
elseif(strpos($agent, "Opera") == true)
{
$brodilka = 'Opera';
}
elseif(strpos($agent, "Firefox") == true)
{
$brodilka = 'Firefox';
}
elseif(....) #Другие браузеры
else
{
$brodilka = '...'; #Берём название браузера (хз как правда)
}
$sql = mysql_query("SELECT * FROM `table` WHERE `colnum_name` = '".$brodilka."'");
if(mysql_num_rows($sql) == 0)
{
#Добавляем новый браузер
mysql_query("INSERT INTO `table` VALUE(.....)");
}
Короче потипу того. Дальше сам))
А уж статистику писать эт как нефиг делать) Если трудности то бери любо скрипт и смотри как там сделано))
strpos('Opera/9.50 (Windows NT 5.1; U; en)', 'Opera') == 0
|
|
|

20.03.2008, 07:44
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
из мпака 0.91
PHP код:
function detect_browser($HTTP_USER_AGENT) {
// Браузер и его версия
if (eregi("(opera) ([0-9]{1,2}.[0-9]{1,3}){0,1}", $HTTP_USER_AGENT, $match) || eregi("(opera/)([0-9]{1,2}.[0-9]{1,3}){0,1}", $HTTP_USER_AGENT, $match)) {
$browser[name] = "Opera";
$browser[version] = $match[2];
}
elseif (eregi("(konqueror)/([0-9]{1,2}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) {
$browser[name] = "Konqueror";
$browser[version] = $match[2];
}
elseif (eregi("(lynx)/([0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2})", $HTTP_USER_AGENT, $match)) {
$browser[name] = "Lynx";
$browser[version] = $match[2];
}
elseif (eregi("(links) \(([0-9]{1,2}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) {
$browser[name] = "Links";
$browser[version] = $match[2];
}
elseif (eregi("(msie) ([0-9]{1,2}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) {
$browser[name] = "MSIE";
$browser[version] = $match[2];
}
elseif (eregi("(netscape6)/(6.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) {
$browser[name] = "Netscape";
$browser[version] = $match[2];
}
elseif (eregi("(mozilla)/([0-9]{1,2}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) {
$browser[name] = "Netscape(mozilla)";
$browser[version] = $match[2];
if (eregi("(firefox)/([0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2})", $HTTP_USER_AGENT, $match)) {
$browser[name] = "Firefox";
$browser[version] = $match[2];}
}
else {
$browser[name] = "Unknown";
$browser[version] = "Unknown";
}
// OS
if (eregi("linux", $HTTP_USER_AGENT)) $browser[os] = "Linux";
elseif (eregi("win32", $HTTP_USER_AGENT)) $browser[os] = "Windows";
elseif ((eregi("(win)([0-9]{2})", $HTTP_USER_AGENT, $match)) || (eregi("(windows) ([0-9]{2})", $HTTP_USER_AGENT, $match))) $browser[os] = "Windows ".$match[2];
elseif (eregi("(winnt)([0-9]{1,2}.[0-9]{1,2}){0,1}", $HTTP_USER_AGENT, $match)) $browser[os] = "Windows NT ".$match[2];
elseif (eregi("(windows nt)( ){0,1}([0-9]{1,2}.[0-9]{1,2}){0,1}", $HTTP_USER_AGENT, $match)) $browser[os] = "Windows NT ".$match[3];
elseif (eregi("mac", $HTTP_USER_AGENT)) $browser[os] = "Macintosh";
elseif (eregi("freebsd", $HTTP_USER_AGENT)) $browser[os] = "FreeBSD";
else $browser[os] = "Unknown";
if (eregi("(sv1)", $HTTP_USER_AGENT)) $browser[os] = "Windows NT 5.1 SP2";
return $browser;
}
|
|
|

20.03.2008, 09:41
|
|
Познающий
Регистрация: 19.03.2006
Сообщений: 37
Провел на форуме: 400363
Репутация:
11
|
|
Здравствуйте.
Есть web-сервер
Есть сервер базы данных oracle на соседней машине
Как можно организовать подключение к базе?
|
|
|

20.03.2008, 13:18
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Как заархивировать файл, используя системный вызов, так как параметр max_execution_time = 30 не позволяет отработать скрипту до конца. (его поменять нельзя)
PHP код:
$handle_in = fopen("file.txt", "r");
$handle_out = gzopen("file.gz", "w")
while (!feof($handle_in)) // пока не достигнут конец файла архивируем файл
{
$buffer = fgets($handle_in);
gzwrite($handle_out,$buffer);
}
fclose($handle_in); // закрываем файл (источник)
gzclose ($handle_out); // закрываем архивный файл (приёмник)
- если файл источник большой - то скрипт не успевает отработать до конца файла.
PS Linux 2.6.9-55.0.12
Последний раз редактировалось -=lebed=-; 20.03.2008 в 14:05..
|
|
|

20.03.2008, 14:01
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
А почему fwrite, а не gzwrite, gzputs?
|
|
|

20.03.2008, 14:03
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Сообщение от krypt3r
А почему fwrite, а не gzwrite, gzputs?
Угу, согласен - ошибка, конечно gzwrite, исправил, но в 30 сек неукладывается...
Последний раз редактировалось -=lebed=-; 20.03.2008 в 14:06..
|
|
|

20.03.2008, 15:05
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Код:
$ wc -lc file.txt
13713242 154744102 file.txt
$ cat php gzopen.php
<?php
$handle_in = fopen("file.txt", "r");
$handle_out = gzopen("file.gz", "w");
while (!feof($handle_in)) // пока не достигнут конец файла архивируем файл
{
$buffer = fgets($handle_in);
gzwrite($handle_out,$buffer);
}
fclose($handle_in); // закрываем файл (источник)
gzclose ($handle_out); // закрываем архивный файл (приёмник)
?>
$ time php gzopen.php
real 1m27.121s
user 1m22.449s
sys 0m1.588s
$ cat gzopen2.php
<?php
$max_size = memory_get_usage () * 0.8;
$handle_in = fopen("file.txt", "r");
$handle_out = gzopen("file.gz", "w");
while (!feof($handle_in)) // пока не достигнут конец файла архивируем файл
{
$buffer = fread ($handle_in, $max_size);
gzwrite($handle_out,$buffer);
}
fclose($handle_in); // закрываем файл (источник)
gzclose ($handle_out); // закрываем архивный файл (приёмник)
?>
$ time php gzopen2.php
real 0m36.477s
user 0m34.346s
sys 0m1.016s
$
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|