Запись и чтение массива из файла

Запись и чтение массива из файлаСегодня я хочу показать как можно хранить массив в файле. Идея очень простая: сериализуем массив — приводим его к виду строки, потом записываем в файл. Получить массив обратно также просто — получаем строку из файла и обратно приводим ее к виду массива. Для преобразования массива в строку и обратно будем использовать две 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'); // чтение из файла
Рассказать друзьям:


Запись и чтение массива из файла: 2 комментария

  1. А если в файле две строки, первая — одно уелое число, и вторая — совокупность чисел через пробел, то как тогда?

    1. Я не совсем понял вопрос? В статье речь идет о массивах — они сериализуются и записываются в файл, потом обратно читаются.

      Чтоб прочитать две строки, можно считывать файл построчно.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*