Здравствуйте уважаемые специалисты. У меня возникла трудная для меня задача, с которой мне самостоятельно справиться увы, но не получается. Поэтому обращаюсь к вам за помощью. Задача следующая: При регистрации каждого нового пользователя на сайте, в каталоге: site.ru/us/db/us/ создается тестовый файл, типа: 123456789.txt с его данными. Такой файл состоит из 10 строк. В админке (site.ru/admin/) я создал файл school.php, в котором делаю вывод всех пользователей, в следующем виде: Пользователь - Строка №5 (из файла данных пользователя) в <input type=text...> Делаю это с целью того, чтобы в админке я мог менять значение Строки №5 в файле с данными у каждого Пользователя в отдельности. Мой код php файла такой: PHP: chdir(".."); $cat=array(); $d=opendir("us/db/us"); while(($e=readdir($d))!=false) { if($e =="." || $e ==".." || $e==".htaccess" || $e=="admin") continue; $cat[]=$e; } closedir($d); $data_e=array(); $file=file("us/db/list"); foreach($file as $line) { $expl=explode("*",$line); $data_e[$expl[2]]=$expl[0]; } if(isset($_GET['school']) && in_array($_GET['school'],$cat)) { $file=file("us/db/us/$_GET[school]"); $f=fopen("us/db/us/$_GET[school]","w"); for($n=0;$n<count($file);$n++) { fwrite($f,$file[5]."\r\n"); } fclose($f); echo "<meta http-equiv=refresh content=0; url=school.php>"; exit(); } $text=file("us/db/us/$cat[$x]"); $rec=file("admin/db/us/$cat[$x]"); echo"<p>Пользователь: $text[1]</p> <form name='$cat[$x]' method='post'> <input name=school type=text value='$text[5]'> <button name=school type=submit value=Изменить>Изменить</button> </form>"; Я конечно извиняюсь за то, что публикую достаточно большой фрагмент кода, но я вынужден его вам показать весь целиком, чтобы эту задачу можно было решить, и руководствуясь тем, что правильно заданный вопрос - это уже половина ответа. Пожалуйста, помогите мне решить эту задачу. Очень вам благодарен за помощь. С уважением,
https://www.php.net/manual/ru/splfileobject.seek.php https://www.php.net/manual/ru/splfileobject.fwrite.php
Дополню вопрос уточнением: 123456789.txt - название файла - это id пользователя. us/db/list - это файл, в котором перечисляются все зарегистрированные пользователи.
Добрый день! Вы всё чётко объяснили. Респект! Думаю Вы справитесь и перезапишите строку в файле. Если не справитесь Вам здесь помогут. Хочу обратить Ваше внимание на, что со временем, когда потребуется добавить ещё одно или несколько полей в данные пользователей, Вам придётся переписывать все файлы. Вполне вероятно, что может потребоваться организовать поиск по данным пользователей или организавать ссылки на другие файлы. Советую Вам подумать о концептии работы с данными. М.б. стоит отказаться от файлов и использовать СУБД. Удачи!
@Vladimir Kheifets добрый день. Нет, самостоятельно справиться мне не удается. В дальнейшем ничего подобного для этого сайта мне не потребуется, поэтому достаточно простой текстовой бд без использования субд. Этот сайт планируется быть допотопно простым и исключительно только для внутренних потребностей, и это еще одна причина, что субд не требуется, а достаточно текстовых файлов.
@Kuzma92, данные такого типа принято хранить в базах данных, а не файловой системе. Если хотите поизвращаться, есть еще ф-ция PHP: file - Manual, там будет треск по использованию оперативной памяти скриптом, если файлы большие.