логин2
логин3
логин4
(представим себе 4 группы пользователей)
по дефолту после регистрации все пользователи попадают в группу1 - файл no.txt
Пользователи могут сменить свою группу - т.е. пользователь выбирает радиобатон2 - меняет свою группу на вторую (надо удалить пользователя из no.txt и 2.тхт 3тхт 4тхт и добавить в 2.txt), имя пользователя скрипту передается по кукам,
Или если можно скрипт как вообще найти строку в файле и удалить ее
Спустя 58 минут, 51 секунда (12.01.2011 - 04:58) brainraider написал(а):
а что тебе мешает просто взять содержимое файлов и банально, при помощи str_replace заменить имя пользователя и все что тебе еще нужно удалить на пустое место?
Спустя 4 часа, 43 минуты, 28 секунд (12.01.2011 - 09:41) linker написал(а):
А я по другому задам вопрос, что мешает использовать базы данных?
Спустя 2 часа, 45 минут, 10 секунд (12.01.2011 - 12:26) nikon2k написал(а):
эти файлы - acl для сквида
Спустя 16 минут, 15 секунд (12.01.2011 - 12:42) nikon2k написал(а):
каретка удалится??
небудет так:
лог1
лог2
лог4
???
небудет так:
лог1
лог2
лог4
???
Спустя 18 минут, 27 секунд (12.01.2011 - 13:01) Renden написал(а):
nikon2k
может я несовсем понял суть задачи, но я бы сделал проще:
сделал 1 файлик config.txt
и базу данных где содержаться права и юзеры
собстверно как работать должно, пользоваетель заходит на сайт, и изменяет свою группу, в базу пишеться новое значение и удаляеться старое, а потом из базы выводиться в config.txt полный набор новых прав (этого пользователя с изменениями и всех остальных).
Ну и в php еще добавь exec squid -k reload ^^
может я несовсем понял суть задачи, но я бы сделал проще:
сделал 1 файлик config.txt
и базу данных где содержаться права и юзеры
собстверно как работать должно, пользоваетель заходит на сайт, и изменяет свою группу, в базу пишеться новое значение и удаляеться старое, а потом из базы выводиться в config.txt полный набор новых прав (этого пользователя с изменениями и всех остальных).
Ну и в php еще добавь exec squid -k reload ^^
Спустя 17 минут, 44 секунды (12.01.2011 - 13:19) nikon2k написал(а):
я в пхп нуб поэтому хотелось бы без бд а просто файлами.
$text = "log"; // Искомая строка
$retext = ""; // Строка замены
$content = file_get_contents('no.txt');
echo $content;
// Осуществляем замену
$content = str_replace($text, $retext, $content);
// Перезаписываем файл
file_put_contents($file, $content);
почему данное не работает?
$text = "log"; // Искомая строка
$retext = ""; // Строка замены
$content = file_get_contents('no.txt');
echo $content;
// Осуществляем замену
$content = str_replace($text, $retext, $content);
// Перезаписываем файл
file_put_contents($file, $content);
почему данное не работает?
Спустя 3 минуты, 37 секунд (12.01.2011 - 13:22) nikon2k написал(а):
и еще как я понял данный код не будет удалять \n т.к. при выводе $content все выводится в одну строку.. или я не прав?
Спустя 8 минут, 49 секунд (12.01.2011 - 13:31) Renden написал(а):
nikon2k
у тя переменная $file не существовала
Да выводиться в 1 сроку, удалять он будет только слово целиком, думаю пустые строчки остануться.
<?php
$text = "log"; // Искомая строка
$retext = " "; // Строка замены
$content = file_get_contents('no.txt');
$file = 'no.txt';
echo $content;
// Осуществляем замену
$content = str_replace($text, $retext, $content);
// Перезаписываем файл
file_put_contents($file, $content);
?>
у тя переменная $file не существовала
Да выводиться в 1 сроку, удалять он будет только слово целиком, думаю пустые строчки остануться.
Спустя 15 минут, 7 секунд (12.01.2011 - 13:46) nikon2k написал(а):
спасибо! теперь думаю как дать www-data права на переконфигурацию сквида в судоерс не помогает добавить
Спустя 13 минут, 52 секунды (12.01.2011 - 14:00) hellmin написал(а):
Удаляем строку полностью
<?php
$str_find = "Grunge"; // Искомая строка
$filename = "file.dat";// Наш файл
$file = file( $filename ); //Считываем файл в массив
foreach( $file as $key=>$value ) // Перечитываем массив
{
if( preg_match( "/^" . $str_find . "$/", trim($value), $m ) ) // В случае совпадения строки с искомой строкой
unset( $file[$key] ); // Удаляем элемент массива
}
$handle = fopen( $filename, "w" ); // Открывам файл для записи уже обновлённых данных
fputs( $handle, implode( "", $file ) ); // Записываем оставшиеся элементы, предварительно соеденив их в строку
fclose( $handle ); // Закрываем файл
?>
Спустя 6 минут, 46 секунд (12.01.2011 - 14:07) nikon2k написал(а):
пред вариант вроде полегче и делает тоже самое если вставить в заменяемую строку \n
Спустя 4 минуты, 18 секунд (12.01.2011 - 14:11) hellmin написал(а):
Согласен но тогда какой результат будет если в файле такие записи:
и заменить слово "текст" на " "?
текст
не текст
текстиль
и заменить слово "текст" на " "?
Спустя 18 минут, 43 секунды (12.01.2011 - 14:30) nikon2k написал(а):
не указал сори что логины не могут быть с пробелами, только
ываыва
ссмвпук
42334423
лдоаы
etc...
ываыва
ссмвпук
42334423
лдоаы
etc...
Спустя 4 минуты, 25 секунд (12.01.2011 - 14:34) hellmin написал(а):
Да наплевать на пробелы...
И если заменить "текст" на " ", то получится
текст
нетекст
текстиль
И если заменить "текст" на " ", то получится
(пробел)
не(пробел)
(пробел)иль
Спустя 2 часа, 10 минут, 26 секунд (12.01.2011 - 16:45) nikon2k написал(а):
так ищется то строка $user."\n" т.е. с концом строки
Спустя 9 часов, 40 минут, 49 секунд (13.01.2011 - 02:25) brainraider написал(а):
Конечно же правильнее использовать БД
тут и время обработки информации меньше да и просто правильно
но все же если человек пока что не хочет делать правильно и по-умному - то есть вариант такой:
при добавлении в файл логина(login) и пароля(pass)
забивать все это, допустим так:
<login_логин+pass_пароль> и при замене делать уже так:
$cherez_chayku = str_replace("<login_{$login}+pass_{$pass}>","",$cherez_chayku)
но тут нужно учитывать, что в логине и пароле не могут встречаться символы-разделители
и, все же, советую потратить 2 часа времени и сделать все не через "чайку" а через БД
тут и время обработки информации меньше да и просто правильно
но все же если человек пока что не хочет делать правильно и по-умному - то есть вариант такой:
при добавлении в файл логина(login) и пароля(pass)
забивать все это, допустим так:
<login_логин+pass_пароль> и при замене делать уже так:
$cherez_chayku = str_replace("<login_{$login}+pass_{$pass}>","",$cherez_chayku)
но тут нужно учитывать, что в логине и пароле не могут встречаться символы-разделители
и, все же, советую потратить 2 часа времени и сделать все не через "чайку" а через БД