Что содержит файл при перезаписи содержимого в php?

Предполагая, что я хочу перезаписать файл с большим содержимым. Что получат остальные, если во время перезаписи будут извлекать содержимое файла? Первый контент? Ничего?

Вы должны записать файл в другой временный файл, как только он будет записан, замените его предыдущим.

Daman Mokha 19.07.2019 15:55

А если не буду? Что получат остальные, если во время перезаписи будут извлекать содержимое файла?

Arșavin 19.07.2019 15:58

Возможно, они получат частичный файл.

Daman Mokha 19.07.2019 16:14

Это зависит от слишком многих факторов. ОС, файловая система, как другие приложения открывают файл и т. д.

Patrick Mevzek 19.07.2019 20:11

@PatrickMevzek, можешь привести примеры поведения?

Arșavin 19.07.2019 20:34

В общем: ожидал неожиданного. Поэтому, если вам нужны определенные гарантии, например, атомарность всего контента, вы должны явно кодировать их, используя блокировки (в значительной степени в зависимости от ОС и файловых систем) или параллельное копирование (что должно работать везде, но создает условия гонки).

Patrick Mevzek 19.07.2019 20:51

Эта недавняя ссылка, которую я только что получил, подробно обсуждает вашу проблему и ее широкую сложность: danluu.com/deconstruct-файлы

Patrick Mevzek 20.07.2019 22:42
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
7
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ничего наверное. Я лично решу эту ситуацию с помощью метода как такового:

  1. Загрузить файл как 'temporary.php'
  2. Удалите старый файл.
  3. Переименуйте только что загруженный временный.php в старый файл.

Процесс переименования будет практически без задержки, но если вы хотите быть в безопасности, возможно, вы можете сделать так, чтобы программа просмотра обновила страницу один раз, если старый файл отсутствует.

Другие вопросы по теме