![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2004
Адрес: С-Пб.
Сообщений: 13
|
Я пытаюсь сделать счетчик посещений разделов Flash сайта. Из Flash-а переменные передаются в PHP и сохраняются в текстовом файле. В файле строчка типа: photos=21&pictures=10&chat=53… Надо эту строчку разбить и прибавить единицу к числу напротив раздела. Если такого раздела еще нет – записать в конец строчки “имя переменной”=1 На этом месте я и застрял… Подскажите как это попроще сделать.
|
|
|||||
|
самое простое - использовать базу данных или более простую структуру файла.
Посложнее для твоего примера: $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);
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
|
|||||
|
Регистрация: Jul 2004
Адрес: С-Пб.
Сообщений: 13
|
Спасибо, но я уже нашел то, что мне надо. Использую такую конструкцию:
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, время: 15:02. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|