Как записать массив в файл (PHP)

Записать данные массива в файл, не нарушая структуры массива, используется функция string serialize(mixed value), которая создает строку из переменной value, готовую к записи в файл.

object2file, object_from_file

Для удобства проще написать 2 функции:

  1. void object2file(mixed $value, string $filename) — функция для записи массива в файл;
  2. mixed object_from_file(string $filename) — функция восстановления данных массива из файла.
<?php /** * void object2file - функция записи объекта в файл * * @param mixed value - объект, массив и т.д. * @param string filename - имя файла куда будет произведена запись данных * @return void * */ function object2file($value, $filename) { $str_value = serialize($value); $f = fopen($filename, 'w'); fwrite($f, $str_value); fclose($f); } /** * mixed object_from_file - функция восстановления данных объекта из файла * * @param string filename - имя файла откуда будет производиться восстановление данных * @return mixed * */ function object_from_file($filename) { $file = file_get_contents($filename); $value = unserialize($file); return $value; } ?>

Пример

Например необходимо записать массив array $array в файл array.txt, затем прочитать данные файла, восстановить и вывести на экран.

<?php // ПРИМЕР $array = array( 1 => 'Номер один', // Ключ: число; Значение: строка 'two' => 2, // Ключ: строка; Значение: число 'three' => 'Это номер три', // Ключ: строка; Значение: строка 4 => 4 // Ключ: число; Значение: число ); // еще одно значение добавим таким способом $array[] = 'Супер значение'; // запишем массив в файл object2file($array, 'array.txt'); // в файл array.txt будет записана следующая информация: // serialize $array // a:5:{i:1;s:19:"Номер один";s:3:"two";i:2;s:5:"three";s:24:"Это номер три";i:4;i:4;i:5;s:27:"Супер значение";} echo '<pre>'; print_r(object_from_file('array.txt')); echo '</pre>'; ?>

Результат

После записи массив в файл и чтения информации из файла, на экране будет следующее:

Array ( [1] => Номер один [two] => 2 [three] => Это номер три [4] => 4 [5] => Супер значение )

Категории

ПрограммированиеPHPМассивы в PHPМассивы

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

Комментарии

Артём Фёдоров

Как я понял в файл попадают данные с экранированными кавычками, и при получении остаются, то можно воспользоваться функцией stripslashes()

Ответить
Ян Басюк

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

Ответить