Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Помогите со статистикой (http://www.flasher.ru/forum/showthread.php?t=71776)

TWS 12.11.2005 22:39

Помогите со статистикой
 
Я пытаюсь сделать счетчик посещений разделов Flash сайта. Из Flash-а переменные передаются в PHP и сохраняются в текстовом файле. В файле строчка типа: photos=21&pictures=10&chat=53… Надо эту строчку разбить и прибавить единицу к числу напротив раздела. Если такого раздела еще нет – записать в конец строчки “имя переменной”=1 На этом месте я и застрял… Подскажите как это попроще сделать.

Skubent 13.11.2005 14:35

самое простое - использовать базу данных или более простую структуру файла.

Посложнее для твоего примера:
$razdel; //здесь должно лежать имя раздела, к которому добавить единицу. "chat" к примеру.
$filename; //тут лежит имя текстового файла.
$f = file($filename);
//сюда сложим все твои разделы
$ourstat = array();
$data = explode("&", $f[0]);
//распарсим строку
foreach($data as $onedata) {
$value = explode("=", $onedata);
$ourstat[$value[0]] = $value[1];
}
//если такой раздел таки есть
if (isset($ourstat[$razdel])) $ourstat[$razdel]++; else $ourstat[$razdel] = 1;
//записываем данные в файл
$f = fopen($filename, 'w');
foreach($ourstat as $key=>$value) {
fwrite($f, $key."=".$value."&");
}
fclose($f);

TWS 10.12.2005 16:08

Спасибо, но я уже нашел то, что мне надо. Использую такую конструкцию:
if (preg_match ("/.*&$mainvar.*/",$mystring)){
$mystring=preg_replace("/&$mainvar=(\d+)/","&$mainvar=".((int)preg_replace("/.*&$mainvar=(\d+).*/","\\1",$mystring)+1),$mystring);
}else{
$mystring = $mystring."$mainvar=1&";
}

Изврат, конечно, но мне помогло :)


Часовой пояс GMT +4, время: 14:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.