【问题标题】:Include array from text file in PHP script在 PHP 脚本中包含来自文本文件的数组
【发布时间】:2012-05-23 18:11:03
【问题描述】:

我正在编写一个脚本,将嵌套数组输出到 PHP 中的文本文件。但是,当我使用 include('array.txt');

时,我很难让其他脚本使用该数组

我尝试了几种不同的方法,例如 $var = include('array.txt'); 或只是包含在文本文件中定义的 var 均无济于事。

需要注意的是,这个文件只希望生成一次,之后数组不应该改变(因此输出到文本文件的方法)

以下是数组文件的示例。

array(array('2','30','37','43','104','152','166','193'),array('10','60','95','112','116','163','199','240','242'),array('12','44','80','91','128','138','140','231'),array('19','38','102','111','130','134','175','207','210','246'))

这样做的正确方法是什么?

【问题讨论】:

  • 另存为 json_encode 并解码回来?

标签: php arrays include


【解决方案1】:

使用序列化:

file_put_contents ($filename, serialize ($array)); // write to file
$array = unserialize (file_get_contents ($filename)); // retrieve

或 JSON 编码:

file_put_contents ($filename, json_encode ($array)); // write to file
$array = json_decode (file_get_contents ($filename), true); // retrieve

另外,使用 gzip 编码来节省磁盘空间可能是个好主意。 (使用gzencode()gzdecode()

【讨论】:

  • 谢谢,但由于某种原因,这不起作用,但 Azoloths 方法完美。
  • 为什么这不起作用? Azoloth 的方法实际上是一个非常糟糕的主意,因为它占用了更多的空间,而且不应该这样做——序列化和 JSON 编码就是为这种事情而设计的。
  • 我不知道为什么它不起作用,但我没有花太多时间弄清楚它。而且我看不出它会如何占用更少的空间,据我所知,他们只是将它们放在语音标记中并在它前面添加了 json。并且该文件只会达到 10kb 的最大大小。但通常是 2kb
【解决方案2】:

最简单的方法是将输出文件的文件扩展名更改为 .php。 .php 只是一个带有 .php 扩展名的文本文件。然后你可以使用 include 函数来包含 php 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    相关资源
    最近更新 更多