【问题标题】:PHP write returnable array to filePHP将可返回数组写入文件
【发布时间】:2015-12-23 10:48:34
【问题描述】:

我需要从文件中读取和写入数组。

文件是这样填充的:

<?php
    return array(
        'Key' => 'value'
    );
?>

我已经能够使用

读取这个文件了
$data = include($path . DIRECTORY_SEPARATOR . $file);

如何在保持 '&lt;?php return array(); ?&gt;' 的结构的同时将此数组写回文件?

【问题讨论】:

  • 看看:file_put_contents() + var_export()
  • 可能想看看 xml...
  • XML 可以,但我只是自己使用它,因此不需要文件中的可读性。在这种情况下,数组对性能的影响较小,因此 XML 没有任何好处。当非技术用户使用这些文件时,我当然会使用 XML。

标签: php arrays writetofile


【解决方案1】:

你可以使用var_export函数:

file_put_contents(
    $path . DIRECTORY_SEPARATOR . $file, 
    "<?php\nreturn " . var_export($data, true) . "\n?>"
);

【讨论】:

  • 谢谢,这样就可以了。
【解决方案2】:

在文件中存储 json 字符串比再次访问该字符串到数组更好的方法。

【讨论】:

  • 在这种情况下不起作用,因为文件也直接从库中导入到类中。在任何其他情况下,这可能是一种选择。
【解决方案3】:

您可以使用serialize() 将数组或对象存储到字符串中。这段代码展示了它是如何完成的:

<?php

$array = ['Key' => 'value'];

$fh = fopen('array.txt','a+');
fwrite($fh,  serialize($array));
fclose($fh);

$read_array = unserialize(file_get_contents('array.txt'));


var_dump($array,$read_array);
/* 
OUTPUTS 

array(1) {
  ["Key"]=>
  string(5) "value"
}
array(1) {
  ["Key"]=>
  string(5) "value"
}
/*

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 2011-04-09
    相关资源
    最近更新 更多