Как можно записать новое значение в {} а так-же как удалить одно из значений в таком файле Код (Text): a:4:{s:9:"user.Igor";s:6:"thjkug";s:11:"user.Deemon";s:4:"6hh7";s:11:"user.PAZUZU";s:5:"88456";s:7:"user.TT";s:4:"6378";} и такой-же вопрос, но тут как заменить значение не переписывая всей строки в таком файле Код (Text): У канюшни|1|на север|loc.3|на восток|loc.9|на юг по дороге|loc.21
Первый код. Это сериализованные данные. Вернуть к нормальному виду поможет функция unserialize(). $x=unserialize(вот_эта_вся_строка); Чтобы посмотреть, что получилось - print_r($x). Второй код. Если длина новой строки равна, равна тому участку, который нужно заменить, то можно использовать fseek(). Тут я не уверен, сам с этой функцией не работал. А если не равны, а тем более новое значение больше заменяемого, то никак.
Как эти дпные посмотреть это я и так знаю можно так открывая вместе файл для записи Код (Text): $msg=unserialize(fputs(fopen($msg_1,"r+"))); а можно более наворочиным способом и тут где-то близко и записать в строку, но я всю голову сломал где сделал не так как не записывает Код (Text): $msg_1="user/$login/msg.dat"; if (file_exists($msg_1)) { $file_msg = fopen($msg_1,"r+"); if ($file_msg===FALSE) {usleep(100000); $file_msg = fopen($msg_1,"w");} flock($file_msg,2); $msg_2=""; while (!feof ($file_msg)) $msg_2.= fgets($file_msg, filesize($msg_1)); $msg_2= unserialize($msg_2); } $play=&$msg_2; Дальше такая строка и читаем каждое значение без проблем Код (Text): foreach (array_keys($play) as $i) ; пробовал записать таким способом Код (Text): $play[$log]=$pas; не выходит, но решение знаю рядом. Вторую строку то-же легко Код (Text): $xxx=explode(implode('|',file($msg_1))); И во второй строке значение меняеться и не обязательно одной длины они это точно!!!
Ыыы. По первому вопросу - получил ты данные из файла, поменял что нужно, и записал обратно. В каком месте трудности? По второму вопросу - никак. Файл можно переписать полностью или дописать туда чтото
Если не пишет то включи просмотр ошибок и ошибку в студию. Скорей всего у скрипта нет прав на запись в этот файл, поставь файлу с данными права на запись для всех
В коде, который привел, нет ни одной строчки, которая записывает в файл. И код Код (Text): $msg_1="user/$login/msg.dat"; if (file_exists($msg_1)) { $file_msg = fopen($msg_1,"r+"); if ($file_msg===FALSE) {usleep(100000); $file_msg = fopen($msg_1,"w");} flock($file_msg,2); $msg_2=""; while (!feof ($file_msg)) $msg_2.= fgets($file_msg, filesize($msg_1)); $msg_2= unserialize($msg_2); } $play=&$msg_2; весьма странный. Зачем открывать файл в режиме "r+"? А если новой файл будет короче старого, то останутся не нужные хвосты. Нужно делать так 1. Читаем содержимое файла. Можно открывая fopen, можно через file_get_contents 2. Совершаем операции с содержимым файла. 3. Самое главное, записываем все в файл.