Для того щоб зберегти дані в файл, є спеціальна функція в PHP file_put_contents(). З її допомогою можна записати інформацію в файл різними способами. Розглянемо всі приклади file_put_contents PHP.
Наведений спосіб дуже простий. Він не розкриває всіх можливостей функції і підходить тільки для демонстрації її роботи.
Адже не варто забувати про те, що подібний метод запису може дати збій в умовах працюючого сайту. Так як до файлу може надходити запит на читання і запис одночасно. Щоб уникнути подібних казусів, потрібно надати нашому скрипту ексклюзивний доступ до файлу. Для цього слід використовувати прапорець блокування LOCK_EX.
<?PHP
file_put_contents(document.txt,$info,LOCK_EX);
?>
Тепер з використанням LOCK_EX всі запити будуть оброблятися по черзі.
У наведених вище прикладах, функція file_put_contents() форматує файл перш, ніж записати в нього нову інформацію. Так само можна не видаляючи попередні дані, зберегти нові в кінець, застосувавши прапор FILE_APPEND.
Якщо запис пройшла вдало, функція повертає значення у вигляді розміру файлу у байтах, а в разі невдачі вона поверне FALSE. Знаючи цю інформацію, можна зробити перевірку, як зазначено в прикладі вище.
Збереження масивів у файл за допомогою file_put_contents
Для запису масивів у файл можна використовувати цю ж функцію, але перед цим масив потрібно серіалізовать. Іншими словами, перетворити його у текст. А після запису десериализовать все назад в масив.
<?PHP
$mass=array(1,2,3); // масив.
$document=’document.txt’; // Файл.
$info=serialize($mass); // Тут відбувається серіалізація масиву.
file_put_contents($document,$info); // Запис в файл.
$info=file_get_contents($document); // Читання файлу.
$mass=unserialize($info); // Десериализация даних файлу для повернення масиву в початковий стан.
?>
Запис у файл за допомогою fopen(), fwrite(), fclose()
Є й інший варіант запису даних за допомогою PHP з використанням функцій fopen(), fwrite(), fclose(). Вони аналогічні PHP file_put_contents(), але дозволяють більш детально підійти до написання скрипта виконує різні операцій з файлом.
- fopen() – відкриття файлу;
- fwrite() – читання файлу;
- fclose() – закриття файлу;
При використанні функції fopen() потрібно вказати режим її роботи
- $file = fopen($document, “w”);
У цьому прикладі функція fopen() з режимом “W” – (writting) може тільки записувати дані в файл. Тому його вміст буде вилучено. А якщо файл з таким ім’ям немає, то скрипт створить його.
- У випадку, якщо потрібно дописати інформацію, зберігши при цьому попередній вміст, то при відкритті потрібно використовувати режим “W+”.
$file = fopen($document, “w+”); // Відкриття файлу.
Потім йде запис в файл:
- fwrite($file, $info); // Запис в файл.
- fclose($file); // Після запису закриваємо файл.