如何从文件中获取已保存的数组&像数组

时间:2016-05-26 11:02:20

标签: php arrays json file

我有一个文件,其中我以数组格式保存数据,后来我想将这些数据读入变量,这个变量必须像数组一样。

假设我的电脑上有一个文件: C:/test.txt ,它包含一个数组:

Array
(
    [first_name] => John
    [last_name] => Doe
    [email] => johndoe@gmail.com
)

现在我使用以下方法获取此数据:

$myfile = fopen("C:/test.txt", "r");
$test = fread($myfile,filesize("C:/test.txt"));

现在,当我打印 $ test 时,它会显示数据,例如数组,但是当我检查此变量的数据类型时,它会显示字符串

我还使用类型转换将此变量转换为数组:

$test1 = (Array) $test;

但是当尝试从 $ test1 获取任何索引时,它会显示非法字符串错误。

有人可以帮助我。

3 个答案:

答案 0 :(得分:0)

C:/test.php

<?php
return array(
    'first_name' => null,
    'last_name' => null,
    'email' => 'new',
);

另一个档案:

<?php
$array = inclde('C:/test.php');

或者将json保存在文件C:/test.json

{"first_name":null,"last_name":null,"email":"new"}

并在另一个档案中:

<?php
$json = file_get_contents('C:/test.json');
$array = json_decode($json, true);

答案 1 :(得分:0)

试试这个

    $file = "C:/test.txt";
    $document = fopen($file,'r');
    $contents = fread($document, filesize($file));
    fclose($document);

这会给你一个数组$ contents

    print_r($contents);

答案 2 :(得分:0)

这样做:

// $myarray is the array
file_put_contents('my_file', serialize($myarray));

// Later ...
$array = unserialize(file_get_contents('my_file'));

您可以猜出serializeunserialize的作用。但是在文档中阅读更多内容以便更具体地学习。

@VladimirKovpak的答案也可以,但是对于简单的数组。使用序列化,您几乎可以保存任何对象,并将其取回。

如果您需要更多地控制序列化过程,请查看来自docs的魔术方法__sleep__wakeup