Сохранение данных в файл php

Сохранение данных в файл php

Для разных задач в php может потребоваться возможность записи данных в .txt файл. Например, для организации счетчиков, голосований и т.п. Реализуем эту возможность с помощью функции file_put_contents().

Простой синтаксис этой функции: file_put_contents(куда пишем, что пишем);

Рассмотрим способ записи произвольных данных в .txt файл:

В этом случае пишет в первую строку файла save.txt из переменной $rez. Счет строк идет с нуля. $filed — это путь к файлу save.txt. В данном случае он будет совпадать с той директорией, откуда будет запускаться весь код. Кстати, особенность функции file_put_contents() в том, что если файла save.txt не существует, он его создаст. А если существует, то перезапишет информацию.

Чтобы запись сделать с новой строки, используйте
. Запишем две записи, каждая с новой строки:

Выгрузка данных из txt файла в php

Используйте функцию file_get_contents — позволяет произвести чтение файла в строку и имеет следующий синтаксис: file_get_contents(имя файла);

В данном примере на экране появится все данные из файла save.txt в одной строчке.

Если вам нужно, чтобы при выгрузке из файла информация сразу очищалась от html тегов, то можно использовать эту функцию:

Синтаксис: fgetss(указатель на файл, размер файла, допустимые теги);

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

Здесь $loadss будет являться массивом, который содержит строки из файла save.txt. Мы выводим первую строку на печать за счет переменной $loadss[0], где [0] указывает первую строку.

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

Как сделать обновление данных в txt-ом файле

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

Читайте также:  Как поменять местами оперативную память

Чтение и запись файлов

Открытие и закрытие файлов

Для открытия файлов в PHP определена функция fopen() . Она имеет следующее определение: resource fopen(string $filename, string $mode) . Первый параметр $filename представляет путь к файлу, а второй — режим открытия. В зависимости от цели открытия и типа файла данный параметр может принимать следующие значения:

‘r’ : файл открывается только для чтения. Если файла не существует, возвращает false

‘r+’ : файл открывается только для чтения с возможностью записи. Если файла не существует, возвращает false

‘w’ : файл открывается для записи. Если такой файл уже существует, то он перезаписывается, если нет — то он создается

‘w+’ : файл открывается для записи с возможностью чтения. Если такой файл уже существует, то он перезаписывается, если нет — то он создается

‘a’ : файл открывается для записи. Если такой файл уже существует, то данные записываются в конец файла, а старые данные остаются. Если файл не существует, то он создается

‘a+’ : файл открывается для чтения и записи. Если файл уже существует, то данные дозаписываются в конец файла. Если файла нет, то он создается

Результатом функции fopen будет дескриптор файла. Этот дескриптор используется для операций с файлом и для его закрытия.

После окончания работы файл надо закрыть с помощью функции fclose() , которая принимает в качестве параметра дескриптор файла. Например, откроем и закроем файл:

Конструкция or die("текст ошибки") позволяет прекратить работу скрипта и вывесте некоторое сообщение об ошибке, если функция fopen не смогла открыть файл.

Чтение файла

Для чтения файла можно использовать несколько функций. Для построчного чтения используется функция fgets() , которая получает дескриптор файла и возвращает одну считанную строку. Пройдем построчно по всему файлу:

Читайте также:  Как настроить эквалайзер под бас

При каждом вызове fgets() PHP будет помещать указатель в конец считанной строки. Чтобы проследить окончание файла, используется функция feof() , которая возвращает true при завершении файла. И пока не будет достигнут конец файла, мы можем применять функцию fgets().

Чтение файла полностью

Если нам надо прочитать файл полностью, то мы можем облегчить себе жизнь, применив функцию file_get_contents() :

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

Поблочное считывание

Также можно провести поблочное считывание, то есть считывать определенное количество байт из файла с помощью функции fread() :

Функция fread() принимает два параметра: дескриптор считываемого файла и количество считываемых байтов. При считывании блока указатель в файле становится в конец этого блока. И также с помощью функции feof() можно отследить завершение файла.

Запись файла

Для записи файла применяется функция fwrite() , которая записывает в файл строку:

Аналогично работает другая функция fputs() :

Работа с указателем файла

При открытии файла для чтения или записи в режиме ‘w’, указатель в файле помещается в начало. При считывании данных PHP перемещает указатель в файле в конец блока считанных данных. Однако мы также вручную можем управлять указателем в файле и устанавливать его в произвольное место. Для этого надо использовать функцию fseek, которая имеет следующее формальное определение:

Параметр $handle представляет дескриптор файла. Параметр $offset — смещение в байтах относительно начала файла, с которого начнется считывание/запись. Третий необязательный параметр задает способ установки смещения. Он может принимать три значения:

SEEK_SET : значение по умолчанию, устанавливает смещение в offset байт относительно начала файла

SEEK_CUR : устанавливает смещение в offset байт относительно начала текущей позиции в файле

Читайте также:  997 Код какой страны

SEEK_END : устанавливает смещение в offset байт от конца файла

В случае удачной установки указателя функция fseek() возвращает 0, а при неудачной установке возвращает -1.

Мне нужно сохранить все эти print_r-файлы в файл (без прочтения чего-либо на странице).

Я знаю, что мне нужно сделать что-то вроде этого:

Но я не знаю, как помещать содержимое в него.

Попробуйте это, используя true параметр в print_r :

Вы можете использовать Output Buffering , что очень удобно, если вы хотите контролировать то, что вы выводите в PHP-скриптах, и как его выводить. Вот небольшой пример:

"; echo"
";echo"
"; echo"
";echo"
"; $content = ob_get_contents(); $f = fopen("file.txt", "w"); fwrite($f, $content); fclose($f);

EDIT: Если вы не хотите показывать вывод на своей странице, вам просто нужно вызвать ob_end_clean ():

Ссылка на основную публикацию
Снять пароль с роутера tp link
Домашняя беспроводная сеть Wi-Fi должна быть защищена паролем. Но ведь бывают разные случаи, скажете вы. Например, вы хотите пригласить друзей...
Скопировать контакты с андроид на компьютер
Мы уже рассказывали о том, как скопировать контакты со смартфона на смартфон. Но иногда проще перебросить контактную книгу на компьютер....
Скопировать строку таблицы значений 1с в другую
Не претендуя на полноту описания функций и методов работы с таблицей значений 1с привожу некоторые аспекты, которые в своё время...
Снять пароль с макроса excel
Здравствуйте, друзья! Последние дни бился над такой задачей: Имеется файл .xls, в нем макрос на VBA, защищенный паролем. Файл создается...
Adblock detector