Php добавляет в конец файла

Обновлено: 03.07.2024

Эта функция следует следующим правилам при доступе к файлу:

  1. Если задан FILE_USE_INCLUDE_PATH, проверьте путь включения на наличие копии имя файла
  2. Создайте файл, если он не существует
  3. Открыть файл
  4. Заблокировать файл, если установлено значение LOCK_EX
  5. Если установлено FILE_APPEND, перейти в конец файла. В противном случае очистите содержимое файла
  6. Записать данные в файл
  7. Закройте файл и снимите все блокировки

Примечание. Используйте FILE_APPEND, чтобы не удалять существующее содержимое файла.

Синтаксис

Значения параметров

  • FILE_USE_INCLUDE_PATH — поиск имени файла в каталоге include
  • FILE_APPEND — если файл уже существует, добавьте к нему данные, а не перезаписывайте его.
  • LOCK_EX – эксклюзивная блокировка файла при записи в него.

Технические детали

Возвращаемое значение: количество байтов, записанных в файл в случае успеха, FALSE в случае ошибки< /td>
Версия PHP: 5.0+
Двоичный сейф: Да
Журнал изменений PHP: PHP 5.1 — добавлена ​​поддержка LOCK_EX и возможность передавать ресурс потока в параметр данных
❮ Справочник по файловой системе PHP

Мы только что запустили
видео W3Schools

ПИКЕР ЦВЕТА

colorpicker

Получите сертификат
пройдя курс
сегодня!

КОД ИГРА

Сообщить об ошибке

Если вы хотите сообщить об ошибке или сделать предложение, не стесняйтесь отправить нам электронное письмо:

Спасибо за помощь!

Ваше сообщение было отправлено в W3Schools.

Лучшие учебные пособия
Лучшие ссылки
Лучшие примеры
Веб-курсы

W3Schools оптимизирована для обучения и повышения квалификации. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, политику конфиденциальности и файлы cookie.

У меня есть веб-сайт, на котором каждый раз, когда пользователь входит или выходит из системы, я сохраняю его в текстовый файл.

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

Кажется, он не добавляется к следующей строке после того, как я снова открою его.

Также я думаю, что это также будет ошибка в ситуации, когда 2 пользователя входят в систему одновременно, повлияет ли это на открытие текстового файла и его последующее сохранение?

7 ответов 7

Попробуйте следующее:

у меня вопрос. используя LOCK_EX. я знаю, что это предотвратит одновременную запись файла в файл. а что будет с другим?

@JerahmeelAcebuche Второй процесс, пытающийся получить блокировку, «будет блокироваться до тех пор, пока запрошенная блокировка не будет получена» (источник). Другими словами, второй процесс будет ждать, пока первый не закроет файл и не снимет блокировку.

Используйте режим a. Это означает добавление .


флаг a создаст файл, если он не существует, и, несмотря ни на что, убедитесь, что вы действительно добавляете новый текст. Для \n это работает, но только если внутри двойных кавычек "не одинарные кавычки"

я имею в виду ситуацию, когда два пользователя входят в систему в разных браузерах. тогда php одновременно откроет файл в двух браузерах и обновит его одновременно. не будет ли проблем?\

О, да, в этом случае используйте базу данных SQL, у нее есть встроенный движок, чтобы избежать условий гонки. Но это совершенно новый вопрос.

Вы можете сделать это объектно-ориентированным способом, просто альтернативным и гибким:

Затем используйте его следующим образом. Допустим, у вас есть user_name, сохраненное в сеансе (полупсевдокод):

Проверьте свой журнал следующим образом:


Большое спасибо за этот класс Logger! Я не ожидал найти это, когда я нашел эту страницу. но на самом деле это основа гораздо лучшего решения, чем то, что я изначально планировал реализовать.

У меня это работает, запись (создание) и/или добавление контента в том же режиме.


Я всегда так использую, и это работает.



Нет причин делать (!file_exists($logPath)) ?'w':'a' - опция a уже имеет правильное поведение, когда файл не существует. Поэтому можно упростить этот ответ, удалив строку $mode = . ; и изменить следующую строку на $logfile = fopen($logPath, 'a'); .

Хотя есть много способов сделать это. Но если вы хотите сделать это простым способом и хотите отформатировать текст перед его записью в файл журнала. Вы можете создать для этого вспомогательную функцию.


В вашем коде нет такого режима открытия файла, как "wr":

Существуют следующие основные режимы открытия: "r" для чтения, "w" для записи и "a" для добавления, и их нельзя комбинировать. Вы можете добавить другие модификаторы, такие как «+» для обновления, «b» для двоичного кода. Новый стандарт C добавляет новый стандартный подспецификатор ("x"), поддерживаемый PHP, который может быть добавлен к любому спецификатору "w" (для формирования "wx", "wbx", "w+x" или "w+bx"). "/"wb+x"). Этот подспецификатор вызывает сбой функции, если файл существует, а не перезаписывает его.

Кроме того, в PHP 5.2.6 был добавлен основной режим открытия 'c'. Вы не можете комбинировать «c» с «a», «r», «w». 'c' открывает файл только для записи. Если файл не существует, он создается. Если он существует, он не усекается (в отличие от 'w'), и вызов этой функции не завершается ошибкой (как в случае с 'x'). 'c+' Открыть файл для чтения и записи; в противном случае он ведет себя так же, как 'c'.

Кроме того, в PHP 7.1.2 была добавлена ​​опция 'e', ​​которую можно комбинировать с другими режимами. Он устанавливает флаг close-on-exec для дескриптора открытого файла. Доступно только в PHP, скомпилированном в системах, соответствующих стандарту POSIX.1-2008.

Итак, для задачи, которую вы описали, лучшим режимом открытия файла будет «a». Он открывает файл только для записи. Он помещает указатель файла в конец файла. Если файл не существует, он пытается его создать. В этом режиме fseek() не действует, записи всегда добавляются.

Youtube

Для просмотра видео присоединяйтесь к нашему каналу Youtube: присоединяйтесь сейчас

Отзыв

Помогите другим, поделитесь

facebook
twitter
pinterest

Изучите последние руководства

Шаблоны проектирования Python

Подготовка

Aptitude

Логическое мышление

Вербальная способность

Вопросы для собеседования с компанией

Тенденционные технологии

B.Tech / MCA

Службы Javatpoint

JavaTpoint предлагает слишком много высококачественных услуг. Напишите нам на [email protected], чтобы получить больше информации о предоставляемых услугах.

  • Дизайн веб-сайта
  • Разработка веб-сайта
  • Разработка Java
  • Разработка PHP
  • Вордпресс
  • Графический дизайн
  • Логотип
  • Цифровой маркетинг
  • Поисковая оптимизация на странице и за ее пределами
  • Контекстная реклама
  • Разработка контента
  • Корпоративное обучение
  • Обучение в классе и онлайн
  • Ввод данных

Подготовка к университетскому городку

PHP Append Файл

Можно добавить определенные данные в определенный файл, просто используя + или режим в функции fopen(). Добавление PHP в файл выполняется с помощью функции fwrite() языка программирования PHP. Функциональность PHP Append также может быть открыта с помощью функции открытия файла «fopen()» с помощью режима добавления. Чтобы добавить некоторый контент, необходим определенный текстовый файл, чтобы добавить дополнительные данные или их. Для записи любого типа контента необходимо открывать файловые ресурсы/ресурсы только в режиме добавления или записи.

Синтаксис

Синтаксис и параметры:

Веб-разработка, языки программирования, тестирование программного обеспечения и другое

$fp = fopen('movies.txt', 'a')or die("Невозможно открыть файл!");

Параметры

Объяснение параметров добавления файла в PHP:

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

Movies.txt: здесь в приведенном выше синтаксисе параметр «movies.txt» — это имя с путем к текстовому файлу, который обычно используется внутри функции fopen(). Имя текстового файла может быть любым.

Режим «a»: Параметр режима «a» является важным параметром. Это означает добавление параметра режима. Это помогает добавлять некоторые данные текстового файла к любому файлу, который специально упоминается в соответствии с нашим требованием.

Функция die(): Функция die() поможет справиться с ошибкой только в том случае, если такой файл недоступен. Это основное назначение функции die() в языке программирования PHP.

Как работает добавление файла в PHP?

Добавление файла в PHP — очень важная концепция программирования на PHP, позволяющая обрабатывать данные файла в соответствии с требованиями пользователя. Чтобы добавить файл text/file к файлу, необходимо указать режим или режим + в функции fopen() для обработки данных файла. Функция «read ()» используется для чтения данных, которые присутствуют в текстовом файле. Функция «fwrite()» языка программирования PHP используется для записи данных в текстовый файл/другое. Ознакомьтесь с приведенными ниже примерами, чтобы понять, как работает файл добавления.

Обучение PHP (5 курсов, 3 проекта) 5 онлайн-курсов | 3 Практический проект | 28+ часов | Поддающийся проверке сертификат об окончании | Пожизненный доступ
4,5 (8 581 оценка)

Некоторые из режимов программирования PHP включают режим чтения файла 'r', режим записи файла 'w', режим открытия файла для записи/только добавление 'a', режим создания нового файла только для записи 'x', открытие режим файла для чтения/записи 'r+', режим чтения и записи 'w+', другой режим добавления данных 'a+', режим проверки файла 'x+' независимо от того, присутствует он или нет, и т. д. Аналогично для другого типа данных погрузочно-разгрузочные работы, используются разные виды режимов. Здесь специально используется режим «а» для добавления данных.

Читайте также: