Автор Тема: После сохранения данных в файл он время от времени становится пустым  (Прочитано 3896 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
Вот программа:
$array=file($file);
# Что-нибудь делаю с $array и потом если $array изменён то сохраняю его.
$fp= fopen ($file,"w");
flock($fp,3);
fwrite ($fp, join(\'\',$array));
fclose ($fp);
У меня проблема: иногда в этом файле появляется не то что мне нужно, может я не правильно сохраняю?
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Что там ненужного появляется?

скорее всего
flock($fp,2);
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Евгений aka Razor,

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
Вместо файла в 60 строк 1 строка с парой цифр!
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
http://php.spb.ru/php/flock2.html
Цитировать

при работе с файлами никогда не используйте fopen(имя,"w"), т.к. операция открытия файла еще до блокировки производит удаление текста из файла. Только fopen(имя,"r+") с последующим ручным обнулением с помощью ftruncate(дескриптор,0);
с уважением,
магистр белой магии.

Оффлайн Жук

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 19
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Цитировать
Вот программа:
$array=file($file);
# Что-нибудь делаю с $array и потом если $array изменён то сохраняю его.
$fp= fopen ($file,"w");
flock($fp,3);
fwrite ($fp, join(\'\',$array));
fclose ($fp);
У меня проблема: иногда в этом файле появляется не то что мне нужно, может я не правильно сохраняю?

Цитировать
Вместо файла в 60 строк 1 строка с парой цифр!

Естественно, так как ты объединяешь массив по пустому символу вместо символа перевода строки. К тому же, как тебе подсказали, режим flock выставил неправильный.

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
Цитировать
Естественно, так как ты объединяешь массив по пустому символу вместо символа перевода строки.

Кстати это правильно, тут был только была ошибка с блокировкой. :)

Жук я не понимаю одного. Нафига ты отвечаешь на мои старые топики??? Даже на мои самые первые топики на этом форуме. Я тоже тебя недолюбливаю, но всё равно не вижу смысла. Или ты хочешь показать как ты "любитель помогать людям" отвечал на глупые вопросы модератора? Хочешь показать какой ты "вумный"??? Наверное не получается... да? Отвечай на нормальные вопросы, а не на ламерские, я вижу что ты отвечаешь на последние.
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28