- file_put_contents
- Описание
- Список параметров
- Возвращаемые значения
- Примеры
- Примечания
- Смотрите также
- Как записать текст/код в файл php с примерами
- Все о записи в файл php
- Что такое file_put_contents
- Синтаксис file_put_contents
- Разбор синтаксиса file_put_contents
- Флаги для file_put_contents
- Упрощенный синтаксис для file_put_contents
- Видео : Запись в файл с помощью file_put_content из формы
- Записать данные в файл с помощью file_put_contents
- Путь для записи с помощью file_put_contents
- Данные для записи с помощью file_put_contents
- Куда будем записывать данные с помощью file_put_contents
- Ошибка записи файла в функции file_put_contents
- Записать данные в файл, с ограничением 1 раз в сутки
- Записать/перезаписать текст в файле через форму
- Как записывать строку в начало файла с помощью file_put_contents ?
- Как записать исполняемый код php в файл
- Как очистить файл от контента php!?
- Работа с файлами в PHP
- Чтение файла: file_get_contents()
- Чтение файла: file()
- Создание файла и запись в файл: file_put_contents()
- Создание папки или структуры папок
- Проверка существования файла или папки
- Проверка прав доступа
- Копирование, перенос и удаление файла
- Работа с файлами с помощью fopen()
file_put_contents
file_put_contents — Пишет данные в файл
Описание
Функция идентична последовательным успешным вызовам функций fopen() , fwrite() и fclose() .
Если filename не существует, файл будет создан. Иначе, существующий файл будет перезаписан, за исключением случая, если указан флаг FILE_APPEND .
Список параметров
Путь к записываемому файлу.
Записываемые данные. Может быть типа string , array или ресурсом потока.
Если data является потоковым ресурсом ( stream ), оставшийся буфер этого потока будет скопирован в указанный файл. Это похоже на использование функции stream_copy_to_stream() .
Также вы можете передать одномерный массив в качестве параметра data . Это будет эквивалентно вызову file_put_contents($filename, implode(», $array)) .
Значением параметра flags может быть любая комбинация следующих флагов, соединенных бинарным оператором ИЛИ ( | ).
Флаг | Описание |
---|---|
FILE_USE_INCLUDE_PATH | Ищет filename в подключаемых директориях. Подробнее смотрите директиву include_path. |
FILE_APPEND | Если файл filename уже существует, данные будут дописаны в конец файла вместо того, чтобы его перезаписать. |
LOCK_EX | Получить эксклюзивную блокировку на файл на время записи. Другими словами, между вызовами fopen() и fwrite() произойдет вызов функции flock() . Это не одно и то же, что вызов fopen() с флагом «x». |
Корректный ресурс контекста, созданный с помощью функции stream_context_create() .
Возвращаемые значения
Функция возвращает количество записанных байт в файл, или false в случае ошибки.
Эта функция может возвращать как логическое значение false , так и значение не типа boolean, которое приводится к false . За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.
Примеры
Пример #1 Пример простого использования
Пример #2 Использование флагов
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen() . Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в разделе Поддерживаемые протоколы и обертки.
Смотрите также
- fopen() — Открывает файл или URL
- fwrite() — Бинарно-безопасная запись в файл
- file_get_contents() — Читает содержимое файла в строку
- stream_context_create() — Создаёт контекст потока
Как записать текст/код в файл php с примерами
Поддержи проект.
File_put_contents php или как записать в файл данные php, как записывать текст в файл, как записать в конец файла, в начало файла!? Какая функция умеет записывать текст, код в файл!? Для записи в файл будем использовать функцию file_put_contents.
Все о записи в файл php
- Что такое → file_put_contents + видеоУпрощенный синтаксис file_put_contents
- Записать данные в файл с помощью -> file_put_contents
- Ошибка записи файла в функции file_put_contents
- Записать данные в файл, с ограничением 1 раз в сутки
- Живой пример, как записать/перезаписать текст в файл
- Скачать скрипт записи/перезаписи текста в файлв архиве
- Файл с записанным текстом
- Записать/перезаписать текст в файле через форму
- Живой пример, как записать/перезаписать текст в файл
- Скачать скрипт записи/перезаписи текста в файлв архиве
- Файл, куда будем записывать/перезаписывать текст
- Как записать в конец файла file_put_contents из формы.
- Живой пример, как записать текст в конец файла
- Скачать скрипт записи текста в конец строкив архиве
- Файл в который будем записывать в конец файла.
- Как записывать строку в начало файла?
- Живой пример, как записать текст в начало файла
- Скачать скрипт записи текста в начало строкив архиве
- Файл для записи в начало файла
- Как записать исполняемый код php в файл
- Как очистить файл от контента php!?
Что такое file_put_contents
Синтаксис file_put_contents
В учебнике функция file_put_contents представлена таким видом:
Разбор синтаксиса file_put_contents
int — при удачной работе, вернет «int» — тип данных, целое число.
file_put_contents — название функции.
string — первое значение должно быть типом string — строка → $filename — путь сохранения — лучше использовать путь на сервере.
mixed $data — тип записываемых данных, смешанный(string или array).
int $flags — флаги, о них отдельно ниже.
resource $context — Корректный ресурс контекста, созданный с помощью функции stream_context_create().(никогда не пользовался.)
Флаги для file_put_contents
Флаги для file_put_contents — это очень полезная вещь!
FILE_USE_INCLUDE_PATH — Ищет filename в подключаемых директориях. Подробнее смотрите директиву include_path.(никогда не пользовался.)
FILE_APPEND — при использовании данного флага, функция «file_put_contents» запишет новые данные в конец файла, а не перезапишет ваш файл полностью.
LOCK_EX — закрывает файл в момент записи.
Синтаксис — это конечно хорошо, но я его никогда таким образом не запоминал.
Упрощенный синтаксис для file_put_contents
Чтобы можно было запомнить, упросим написание синтаксиса функции file_put_contents:
file_dir -> путь до файла, если путь указан только названием файла, например primer.txt , то файл создастся в той папке, где расположен файл со скриптом. Исключение -> если у вас на сайте единая точка входа, то файл в таком случае будет сохраняться в корневую папку. Тогда нужно указывать путь на сервере до файла. Если файл по указанному адресу не существует, но путь до папки существует, то файл будет создан! Иначе ошибка.
data -> данные, это может быть строка или массив.
FILE_APPEND -> флаг, который указывает на то, что запись будет производится в конец строки. Если флаг не указан, то файл будет перезаписываться!
LOCK_EX -> флаг, который указывает на то, что в момент записи файл будет недоступен для других пользователей!
Видео : Запись в файл с помощью file_put_content из формы
Записать данные в файл с помощью file_put_contents
Для того, чтобы записать данные в файл нам понадобится функция «file_put_contents».
Путь для записи с помощью file_put_contents
Смысла не вижу говорить о других вариантах — я их не использую.
Данные для записи с помощью file_put_contents
Как вы уже поняли, то «file_put_contents» может записать строку, это можно сделать таким образом(кавычки, в данном пример можно использовать, как одинарные так и двойные.):
Для записи многомерного массива понадобится — serialize — превратить массив в строку.
Куда будем записывать данные с помощью file_put_contents
Мы должны определиться, как и что мы хотим записать.
Первый раз записать или перезаписать данные в файле, тогда здесь
Ошибка записи файла в функции file_put_contents
При первом создании файла ВСЕГДА (кроме), будет возникать ошибка типа Warning , потому, что файл еще не существует!
Если путь существует, то файл будет создан, ошибка будет выведена на экран.
Если путь не существует, то функция file_put_contents вернет такую же ошибку:
Для ликвидации ошибки failed to open stream можно пользоваться собакой
Записать данные в файл, с ограничением 1 раз в сутки
В данном пункте нет никаких форм ввода, нужно только зайти на
тестовую страницу для записи в файл сегодняшней даты.
Скачать скрипт записи/перезаписи текста в файл в архиве
Как я уже говорил, что начал переписывать страницу снизу и. этот скрипт короче предыдущих, поэтому его можно практически всего описать! погнали:
Поучим дату в переменную:
Получаем данные из файла file_get_contents
Скачать см. выше.
Записать/перезаписать текст в файле через форму
Его же можно скачать -> в архиве
Из формы получаем с помощью post в переменную текст:
Единственный фильтр поставил на количество символов:
С условием если количество больше 50 :
Его же можно скачать -> в архиве
Путь до файла $dir_file -> путь до папки должен существовать физически, иначе будет ошибка записи в файл
Путь до файла должен быть на сервереДалее -> данные для записи в конец файла $data, в нашем примере туда будет попадать текст из формы через post запрос.
Для того, чтобы запись в файл происходило в конец файла, нужно поставить флаг FILE_APPEND
И если вам нужен перенос, после данных ставим его -> . «\n» , это должно выглядеть примерно так:
Нам осталось собрать весь код вместе, его как уже говорилось вы можете скачать -> в архиве
Запись происходит в несколько файлов, и вот запись на главную делается в конец файла!
Как записывать строку в начало файла с помощью file_put_contents ?
Скачать скрипт записи текста в начало строки в архиве
Получить существующий контент в переменную с помощью file_get_contents
Поставить новый текст перед полученным, если требуется перенос строки ставим перенос:
Где -> путь до папки от корневой:
Название файла, куда будем записывать в начало файла:
Как записать исполняемый код php в файл
В самом начале скажем пару слов :
Я уже делал страницу, где в реальности в каждый новый файл записывался html каркас страницы! -> здесь. А исполняемый php код — в нем нужно просто заэкранировать, либо поместить переменные в одинарные кавычки!
И где он применяется у меня на сайте!? На 115 секунде записываются данные на страницу, как раз в этом видео. все данные относительно страницы записываются в виде php кода с переменными!
Чтобы ничего не придумывать, мы возьмем живой пример, как записываю я, тот код, который должен исполниться! Как вы поняли из нашего сайта, но если не поняли то тоже скажу — что нам периодически приходится приводить примеры того, как тот или иной код работает,поэтому унас есть в админке, о которой я даже снял некоторое видео. экскурсию
На скрине — отдельное поле, в который вставляется тот код, который должен исполниться:
Эту картинку, скриншот, можно увеличить в отдельном окне нажмите по нему!
Это работает очень просто!
В textarea — вставляем наш код, потом передаем его с помощью post.
Обращаю ваше внимание на переменную $text_for_page -после нее первое рано красного цвета, а далее цвет изменился. на желтый — это говорит о том, что внутри код не будет исполняться. и будет обычной строкой. это достигается одиночной кавычкой.
И еще! Обращаю ваше внимание , что переменные внутри, белого цвета — это говорит, нам о том, что данные переданные выдадут свое содержание в строку!
Эту картинку, скриншот, можно увеличить в отдельном окне нажмите по нему!Может это кажется страшным, но для меня это каждодневная работа!
Как очистить файл от контента php!?
После перезагрузки страницы, файл $file_dir будет очищен от контента!
Работа с файлами в PHP
Чтение файла: file_get_contents()
С помощью функции file_get_contents() можно получить содержимое файла:
Также мы можем получить html-код какой-либо страницы в интернете:
Но работает это далеко не для всех сайтов, у многих есть защита от такого примитивного парсинга.
Чтение файла: file()
Функция file() позволяет получить содержимое файла в виде массива. Разделителем элементов является символ переноса строки.
Создадим в корне сайта файл data.txt со следующим содержимым:
Теперь запустим скрипт index.php со следующим кодом:
При запуске этого скрипта мы получим в браузере:
Заметили, что у первых двух строк длина 7 символов вместо пяти? Это из-за того, что каждая строка содержит в конце символы переноса строки.
Чаще всего они нам не нужны, поэтому их можно убрать, передав вторым параметром константу FILE_IGNORE_NEW_LINES :
Теперь у всех строк будет по 5 символов.
Если нам необходимо получить только заполненные строки в файле и пропустить пустые, можно передать вторым параметром константу FILE_SKIP_EMPTY_LINES :
Разумеется, мы можем передать сразу две константы:
Создание файла и запись в файл: file_put_contents()
Функция file_put_contents() позволяет создать файл и заполнить его данными.
Первым параметром функция принимает путь к файлу, вторым — строку с данными. Для создания пустого файла нужно передать вторым параметром пустую строку.
Если файла не существует — он будет создан. Если существует — данные в файле будут перезаписаны.
Чтобы не перезаписывать данные, а добавить их в конец файла, нужно передать третьим параметром константу FILE_APPEND :
Также вторым параметром можно передать массив:
Но этот вариант не очень удобен, поскольку все элементы массива запишутся подряд, без каких-либо разделителей. Чтобы их добавить, можно использовать функцию implode:
Создание папки или структуры папок
Создать папку можно с помощью функции mkdir() (make directory):
Вторым параметром указываются права доступа к файлу в виде восьмеричного числа, по-умолчанию это 0777 , что означает самые широкие права. Для Windows этот аргумент игнорируется.
Кроме этого, второй параметр может игнорироваться при заданной umask (пользовательская маска (user mask), которая нужна для определения конечных прав доступа). В этом случае принудительно сменить права можно функцией chmod() :
Также мы можем создать структуру папок рекурсивно, для этого нужно третьим параметром передать true :
Но в этом случае права доступа будут заданы только для конечной папки. Для изменения прав у каждой из папок придётся указывать права вручную:
Права доступа — это отдельная объёмная тема, поэтому сейчас мы её пока рассматривать не будем.
Проверка существования файла или папки
Проверить существование папки или файла можно с помощью функции file_exists() :
Если вы хотите проверить существование только папки или только файла, для этого есть специальные функции is_dir() и is_file() :
Проверка прав доступа
Функции is_readable() и is_writable() проверяют, есть ли у пользователя, от имени которого запущен PHP, права на чтение и запись файла или папки:
Копирование, перенос и удаление файла
Для удаления файлов используется функция unlink() :
Чтобы скопировать файл, используем функцию copy() :
Для переименования и переноса файла в другую папку используется функция rename() :
Работа с файлами с помощью fopen()
Функций file() , file_get_contents() и file_put_contents() достаточно для решения большинства задач, связанных с управлением файлами.
Но иногда возникают ситуации, когда нам необходимы более продвинутые инструменты. Например, если у нас есть большой текстовый файл и мы хотим читать его построчно, а не весь сразу, для экономии оперативной памяти.
Итак, открыть (или создать и открыть) файл можно с помощью функции fopen() :
Функция fopen() возвращает так называемый лескриптор. Это ссылка, указатель на файл, его мы будем передавать в другие функции. Кстати, тип данных этого дескриптора — resource .
Первым параметром мы передаём путь к файлу, вторым — модификатор доступа к файлу. Ниже перечислены наиболее популярные модификаторы:
- r — открытие для чтения, указатель переходит в начало файла.
- r+ — открытие для чтения и записи, указатель переходит в начало файла.
- w — открытие для записи, указатель переходит в начало файла. Если файла нет — создаётся, если есть — очищается от данных.
- w+ — открытие для чтения и записи, в остальном аналогичен w .
- a — открытие для записи, указатель переходит в конец файла. Если файла нет — создаётся.
- a+ — открытие для чтения и записи, в остальном аналогичен a .
- x — создание и открытие для записи, указатель переходит в начало файла. Если файл существует — PHP покажет ошибку.
- x+ — создание и открытие для чтения и записи, в остальном аналогичен x .
Указатель — это нечто вроде курсора. Вы можете переместить его в любое место файла, чтобы добавить или отредактировать определённые данные.
Для записи данных в файл существует функция fwrite() . Давайте попробуем создать файл и записать в него какие-нибудь данные:
Заметьте, из-за модификатора w при каждом запуске скрипта данные в файле стираются и добавляются заново. Если модификатор заменить на a , данные будут не перезаписываться, а добавляться в конец файла.
Для построчного чтения файла используется функция fgets() :
При каждом запуске fgets получает следующую строку и возвращает её в $line . Вторым параметром передаётся максимальная длина строки. Это означает, что если строка слишком длинная, она будет обрезана.
Также в PHP существует множество других полезных функций, работающих с дескриптором файла. Почитать о них можно в документации.