Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: как открыть и записать массив в файл
Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
привет всем
пишу комментарии к сообщению в один файл, каждый коммент - элемент массива (там имя, сообщение, имэйл), хочу удалять из админки комменты поштучно, но ничего не получается
include ($file);
//файл с комментами, там массив называется tofil
unset ($tofil[1]);
//удаляет без проблем
$fw=fopen ($file, "w");
fwrite($fw, $tofil);
// проблемы с записью
fclose($fw);
в файл пишется слово Array... а мне нужно, чтобы было записано содержание массива. думала про compact или extract, но че-то не помогло.
что делаю не так? как записать в файл содержание массива?
garvey
Отправлено: 08 Сентября, 2010 - 12:10:31
Частый посетитель
Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010 Откуда: Minsk
Помог: 3 раз(а)
Циклом нужно пройтись по элементам массива(foreach удобней в этом случае).
Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Nestor, var_export, var_dump - это по ходу аналоги print_r, они не преобразовывают массив, а просто выводят, так что в файл в таком случае ничего не пишется...
шаманю дальше
polly
Отправлено: 09 Сентября, 2010 - 13:21:48
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
это АДЪ!!!
$all=count($tofil);
if ($nomer==0)
{
if ($all==0)
{
$fw=fopen ($file, "w");
fwrite($fw, '');
}
$textarray=base64_encode(serialize($array));
fopen($file,"a+");
flock($f,LOCK_EX);
ftruncate($f, 0);
fwrite($f,$textarray);
fflush($f);
flock($f,LOCK_UN);
fclose($f); (Добавление)
Прямые руки исправляют все проблемы, а serialize самый идеальный вариант (Добавление)
А еще всегда нужно правильно работать с кодировками
polly
Отправлено: 09 Сентября, 2010 - 13:47:57
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
а еще можно не кичиться прямотой своих рук перед блондинкой, которая села писать движок с нуля и ваще не программер ни разу, чего в принципе не скрываю.
ALEN
Отправлено: 09 Сентября, 2010 - 13:51:45
Участник
Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008 Откуда: Крым
Помог: 11 раз(а)
Тогда извини))) Только не сдавай, что serialize не подходит )))
polly
Отправлено: 09 Сентября, 2010 - 13:56:58
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
ок) ааа... то есть тот код ты написал в надежде, что его разбирать никто не будет, а если и будет, то мозг взорвется??)))) XD
ALEN
Отправлено: 09 Сентября, 2010 - 14:05:59
Участник
Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008 Откуда: Крым
тут читаем наш файл $file , раскодируем его с помощью base64_decode и разбираем его как закодированный unserialize
далее нам нужно записать его в файл:
$textarray=base64_encode(serialize($array));
тут кодируем наш массив $array с помощью serialize , далее полученую строку кодируем с помощью base64_encode для не читаемого вида, который позволит избежать некоторых плохих моментов.
ниже банальный код записи в файл, который можно найти в любом учебнике
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.