Сегодня я хочу показать как можно хранить массив в файле. Идея очень простая: сериализуем массив — приводим его к виду строки, потом записываем в файл. Получить массив обратно также просто — получаем строку из файла и обратно приводим ее к виду массива. Для преобразования массива в строку и обратно будем использовать две php функции — serialize и unserialize.
Приступим к коду, он оформлен в виде двух функций и подробно прокомментирован:
/** * Запись массива в файл */ function writeArrayInFile($testArray){ $serArray = serialize($testArray); // преобразовываем массив в строку $file = fopen ("array.txt","w+"); // открываем файл, если надо то создаем fputs($file, $serArray); // записываем в него строку fclose($file); // закрываем файл } /** * Чтение массива из файл */ function readArrayInFile($fileName){ $file = fopen($fileName, 'r'); // открываем файл $str = ""; // считываем все из файла while (($buffer = fgets($file, 128)) !== false) { $str .= $buffer; } $array = unserialize($str); // преобразовываем строку в массив return $array; }
И пример использования:
// пример использования $testArray = array(1, 2, 3, 'five', 'six'); // тестовый массив //writeArrayInFile($testArray); // записываем в файл $array = readArrayInFile('array.txt'); // чтение из файла
А если в файле две строки, первая — одно уелое число, и вторая — совокупность чисел через пробел, то как тогда?
Я не совсем понял вопрос? В статье речь идет о массивах — они сериализуются и записываются в файл, потом обратно читаются.
Чтоб прочитать две строки, можно считывать файл построчно.