Вы можете авторизоваться через ВКонтакте, Фейсбук и оставить комментарий


Как записать массив в файл (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) — функция восстановления данных массива из файла.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?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, затем прочитать данные файла, восстановить и вывести на экран.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
// ПРИМЕР
$array = array(
    
=> 'Номер один'// Ключ: число; Значение: строка
    
'two' => 2// Ключ: строка; Значение: число
    
'three' => 'Это номер три'// Ключ: строка; Значение: строка
    
=> // Ключ: число; Значение: число
);
// еще одно значение добавим таким способом
$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>';

?>

Результат

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

1
2
3
4
5
6
7
8
Array
(
    [1] => Номер один
    [two] => 2
    [three] => Это номер три
    [4] => 4
    [5] => Супер значение
)
Опубликовано: 23 августа 2011  ·  Автор: Артём Фёдоров  ·  21337 просмотров

Категория

ГлавнаяПрограммированиеPHPМассивыКак записать массив в файл (PHP)

Чтобы оставить комментарий нужно авторизоваться на сайте
или войти через ВКонтакте или Фейсбук

Войти через ФейсбукВойти через Твиттер

Комментарии

Как я понял в файл попадают данные с экранированными кавычками, и при получении остаются, то можно воспользоваться функцией stripslashes()
Артём Фёдоров · 4 года назад
А , если, к примеру, я поставил кавычки, то как избавится от дробей?
Ян Басюк · 4 года назад
Массивы, PHP, Программирование

© 2010-2017 expange.ru
При полном или частичном копировании статей сайта, ссылка на источник обязательна.

Хотите узнать больше информации, пишите на: artem@expange.ru

Полезное онлайн  ·  Новости  ·  Изображения  ·  Статьи по датам

О проекте  ·  Правила пользования  ·  Представительства

Благодарности и пожелания