我有一个文件,其中我以数组格式保存数据,后来我想将这些数据读入变量,这个变量必须像数组一样。
假设我的电脑上有一个文件: 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 获取任何索引时,它会显示非法字符串错误。
有人可以帮助我。
答案 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'));
您可以猜出serialize或unserialize的作用。但是在文档中阅读更多内容以便更具体地学习。
@VladimirKovpak的答案也可以,但是对于简单的数组。使用序列化,您几乎可以保存任何对象,并将其取回。
如果您需要更多地控制序列化过程,请查看来自docs的魔术方法__sleep
和__wakeup
。