如何从文本文件中读取数组?

8

我使用php中的file_put_contents()函数将数组存储在txt文件中,成功地将php数组写入文本文件。现在想知道如何将文本文件读入php中?

<?php
$arr = array('name','rollno','address');
file_put_contents('array.txt', print_r($arr, true));
?>

上述PHP成功写入文本文件。我希望在PHP中读取该文本文件?

不要使用 print_r,请改用 var_export - Kevin
这两个函数 var_export 和 print_r 有什么区别? - Balakumar B
如果您计划从数组中重复使用这些值,最好使用var_export或创建一个json文件。 - Kevin
我使用了var_export,然后使用 $strarray = file_get_contents('input_array_export.txt');,我的 input_array_export.txt 包含 array ( 'select' => array ( 189 => array ( 'vl' => array ( 0 => '2', 1 => '1', ) 然后我尝试打印 print_r($strarray['select']);,它返回了一个 a - Balakumar B
我如何从读取的数组中访问“select”索引? - Balakumar B
4个回答

19
如果您计划在数组内重复使用相同的值,可以在创建该数组文件时使用 var_export
基本示例:
$arr = array('name','rollno','address');
file_put_contents('array.txt',  '<?php return ' . var_export($arr, true) . ';');

那么,当使用这些值的时候,只需要使用include

$my_arr = include 'array.txt';
echo $my_arr[0]; // name

或者只需使用简单的JSON字符串,然后进行编码/解码:

$arr = array('name','rollno','address');
file_put_contents('array.txt',  json_encode($arr));

然后,当你需要它时:

$my_arr = json_decode(file_get_contents('array.txt'), true);
echo $my_arr[1]; // rollno

谢谢,我得到了预期的结果,但是我对 '<?php return ' . var_export($InputArr, true) . ';' 中的 return 有疑问,我不知道为什么要使用 return,请您解释一下。 - Balakumar B
这正是我在寻找的。谢谢你。 - dchayka

2
使用这个:


$arr = file('array.txt', FILE_IGNORE_NEW_LINES);
print_r($arr);

0

你可以尝试按照以下方式读取文件

$strarray = file_get_contents('array.txt');

然后您可以根据需要使用该数组。


0

fopen()

fopen()的第一个参数包含要打开的文件名,第二个参数指定文件应该以哪种模式打开

fread()

fread()的第一个参数包含要读取的文件名,第二个参数指定最多要读取的字节数。

fclose()

fclose()函数用于关闭打开的文件。

$arr = array('name','rollno','address');
file_put_contents('array.txt', print_r($arr, true));

$myfile = fopen("array.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("array.txt"));
fclose($myfile);

输出:

Array ( [0] => name [1] => rollno [2] => address )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接