在php中将数组写入文件并获取数据

     2023-05-07     112

关键词:

【中文标题】在php中将数组写入文件并获取数据【英文标题】:Writing Array to File in php And getting the data 【发布时间】:2013-02-14 06:37:32 【问题描述】:

我有一个数组,使用print_r 后如下所示

Array ( [0] => Array ( [0] => piklu [name] => piklu ) [1] => Array ( [0] => arindam [name] => arindam ) [2] => Array ( [0] => shyamal [name] => shyamal ) [3] => Array ( [0] => arko [name] => arko ) [4] => Array ( [0] => pamela [name] => pamela ) [5] => Array ( [0] => dodo [name] => dodo ) [6] => Array ( [0] => tanmoy [name] => tanmoy ) [7] => Array ( [0] => jitu [name] => jitu ) [8] => Array ( [0] => ajgar [name] => ajgar ) ) 

现在我想将此数组直接写入文件,我使用file_put_contents 方法,但我不知道如何从文件中获取数据,它们看起来与原始数据完全一样。有什么办法解决这个问题吗?

【问题讨论】:

如何将其保存到文件中?你也可以显示你的代码吗? 为什么要将此数组写入文件?以及为什么要从文件中获取它?描述一下你的工作目标? 【参考方案1】:

您目前的问题基本上是您只能将字符串写入文件。因此,要使用file_put_contents,您首先需要将数据转换为字符串。

对于这个特定的用例,有一个名为serialize 的函数可以将任何 PHP 数据类型转换为字符串(资源除外)。

这里是一个如何使用它的例子。

$string_data = serialize($array);
file_put_contents("your-file.txt", $string_data);

您可能还想稍后提取数据。只需使用unserialize 将字符串数据从文件转换回数组。

这就是你的做法:

$string_data = file_get_contents("your-file.txt");
$array = unserialize($string_data);

【讨论】:

Thanx..这完全实现了我的目标......再次感谢。【参考方案2】:

这里有两种方法:

(1) 将数组对象的 JSON 表示形式写入文件。

$arr = array( [...] );
file_put_contents( 'data.txt', json_encode( $arr ) );

然后……

$data = file_get_contents( 'data.txt' );
$arr = json_decode( $data, true );

(2) 将数组对象的序列化表示写入文件。

$arr = array( [...] );
file_put_contents( 'data.txt', serialize( $arr ) );

然后……

$data = file_get_contents( 'data.txt' );
$arr = unserialize( $data );

我更喜欢 JSON 方法,因为它不像序列化那样容易损坏。您可以打开数据文件并对内容进行编辑,它会编码/解码回来而不会让人头疼。序列化数据不能轻易更改或损坏,否则 unserialize() 将不起作用。每个变量都由类型和长度定义,这些值必须随着您所做的实际更改而更新。

【讨论】:

PHP 和 Json 的唯一“问题”是您需要正确处理数组。 PHP 不区分列表和哈希/对象(如 javascript/json),在 PHP 中你只有一个数组。所以你可能想看看json_encode() 的第二个参数来搞定。【参考方案3】:

file_put_contents 将字符串写入文件,而不是数组。 http://php.net/manual/en/function.file-put-contents.php

如果您想将您在 print_r 中看到的内容写入文件,您可以试试这个:

ob_start();
print_r($myarray);
$output = ob_get_clean();
file_put_contents("myfile.txt",$output);

【讨论】:

不使用输出缓冲,看一下print_r的第二个参数 好点。我知道,但我认为它是在 5 中添加的,看起来它是在 4.3 中添加的。不管怎样,在不知道PHP版本的情况下,还是稳妥行事吧! 我想说此时大多数用户至少有 PHP 5.3。我认为至少提及新功能总是很重要的,这样用户才能快速采用它们并更新他们的 PHP,以便语言可以更快地发展。 +1 表示 print_r($arr, true)。虽然,尝试将文件内容恢复到有效数组时并没有多大帮助。【参考方案4】:

如果这是静态内容,更高效的方法是:

$filePath = 'path/to/file.php';

//Saving
file_put_contents($filePath, '<?php '.PHP_EOL.'return '.var_export($array, true).';');
 

//Retrieving data
$array = include $filePath;

这也将保存在 OPcode 缓存中,甚至可以预加载。但是,如果您使用 OPcode 缓存或预加载,这将不会在部署之间重新加载。

【讨论】:

【参考方案5】:

我不确定,但可能是这样的。您想在写入时序列化()数组。它会将您的数组放入 test.txt

file_put_contents('test.txt', serialize($array));

【讨论】:

如何在 C 中将动态分配的 3D 数组写入 hdf5 文件?

】如何在C中将动态分配的3D数组写入hdf5文件?【英文标题】:Howtowritedynamicallyallocated3Darrayintohdf5fileinC?【发布时间】:2022-01-1423:09:37【问题描述】:我有一个动态分配的3D数组,实现为指向数组指针数组的指针(至少这是我对我... 查看详情

如何在 Xcode 项目中将字典数组写入 .txt 文件

】如何在Xcode项目中将字典数组写入.txt文件【英文标题】:Howtowriteanarrayofdictionariestoa.txtfileinXcodeProject【发布时间】:2017-06-1613:18:36【问题描述】:我正在从Firebase检索数据,然后将接收到的FIRDataSnapshot类型的数组转换为[String:Any... 查看详情

在 PHP 中将 CSV 写入不带附件的文件

】在PHP中将CSV写入不带附件的文件【英文标题】:WriteCSVToFileWithoutEnclosuresInPHP【发布时间】:2010-12-2012:24:10【问题描述】:是否有本机函数或实体类/库用于将数组写为CSV文件中的一行而不带附件?如果没有为附件参数传递任何... 查看详情

如何在 Java 中将句子存储在临时数组中?

】如何在Java中将句子存储在临时数组中?【英文标题】:HowtostoresentencesinatemporaryarrayinJava?【发布时间】:2011-07-0517:21:17【问题描述】:目前,我正在从文本文件中刮出一大块数据(段落/字符串)并将其写入新文件。但是,我计... 查看详情

在 SSIS 中将数据写入 Excel 文件时出现无法解释的错误

】在SSIS中将数据写入Excel文件时出现无法解释的错误【英文标题】:UnexplainableerrorwhilewritingdataintoExcelfileinSSIS【发布时间】:2015-07-1611:52:32【问题描述】:我的DFT从SP获取数据。接下来是条件拆分,根据列值将数据集拆分为5个部... 查看详情

在 PowerShell 中将没有展平列表的 JSON 数组写入文件

】在PowerShell中将没有展平列表的JSON数组写入文件【英文标题】:WriteJSONArraywithoutflatteninglisttoafileinPowerShell【发布时间】:2022-01-0803:03:18【问题描述】:我在PowerShell中创建了下面的JSON数组$json=@(@firstname="abc"lastname="xyz"email="abc@xyz.... 查看详情

在 VBA 中将 Longs 数组写入 HEX 文件的最佳方法是啥?

】在VBA中将Longs数组写入HEX文件的最佳方法是啥?【英文标题】:WhatisthebestwaytowriteaLongsarrayintoaHEXfileinVBA?在VBA中将Longs数组写入HEX文件的最佳方法是什么?【发布时间】:2020-09-2619:16:07【问题描述】:我有一个Longs数组(在10k或... 查看详情

在执行期间将大型多维数组读取和写入二进制文件并返回数组?

...个大的多维数组:浮动大表[32][256][128][3]有没有办法在C++中将此数组写入二进制文件并轻松将其读回数组? 查看详情

在 PHP 中将大文件写入磁盘的最佳方法是啥?

】在PHP中将大文件写入磁盘的最佳方法是啥?【英文标题】:WhatisthebestwaytowritealargefiletodiskinPHP?在PHP中将大文件写入磁盘的最佳方法是什么?【发布时间】:2011-06-1510:38:55【问题描述】:我有一个偶尔需要将大文件写入磁盘的PHP... 查看详情

如何在 Scala 中将 DataFrame 模式写入文件

】如何在Scala中将DataFrame模式写入文件【英文标题】:HowtowriteaDataFrameschematofileinScala【发布时间】:2016-07-0105:35:16【问题描述】:我有一个从一个巨大的json文件加载并从中获取架构的DataFrame。架构基本上是1000列左右。我希望将pr... 查看详情

在Java中将字节[]写入文件[关闭]

】在Java中将字节[]写入文件[关闭]【英文标题】:Writebyte[]toFileinJava[closed]【发布时间】:2011-10-1307:20:41【问题描述】:如何在Java中将字节数组转换为文件?byte[]objFileBytes,FileobjFile【问题讨论】:“将字节数组转换为文件对象”... 查看详情

在 fortran 中将写入附加到 hdf5 文件

】在fortran中将写入附加到hdf5文件【英文标题】:Appendingwritestohdf5fileinfortran【发布时间】:2021-10-2617:05:50【问题描述】:我想以附加方式将数据写入fortran中的hdf5文件,但我无法将数据保存在大型内存数组中。使用ascii编写时,... 查看详情

在swift 5中将json数据获取到tableview

】在swift5中将json数据获取到tableview【英文标题】:fetchjsondatatotableviewinswift5【发布时间】:2021-01-0715:33:42【问题描述】:我正在尝试在swift5中从json中的php文件中获取数据到我的tableview我能够将控制台中的数据作为json数组获取,... 查看详情

无法在 iOS Swift 中将数据写入文件

】无法在iOSSwift中将数据写入文件【英文标题】:CannotwritedatatofileiniOSSwift【发布时间】:2020-01-3009:01:44【问题描述】:我在文档文件夹中手动创建了一个文件amutha.txt。我试图将数据写入该文件。我使用的代码是letstring="Amuthapriya"... 查看详情

在 Python 中将二进制数据写入文件

】在Python中将二进制数据写入文件【英文标题】:WritingbinarydatatoafileinPython【发布时间】:2014-09-2920:59:09【问题描述】:我正在尝试将数据(文本、浮点数据)写入二进制文件,以便稍后由另一个程序读取。问题是这个程序(在F... 查看详情

在 C# 中将数据写入 CSV 文件

】在C#中将数据写入CSV文件【英文标题】:WritingdataintoCSVfileinC#【发布时间】:2013-09-1610:00:03【问题描述】:我正在尝试使用C#语言逐行写入csv文件。这是我的功能stringfirst=reader[0].ToString();stringsecond=image.ToString();stringcsv=string.Format(... 查看详情

如何在 PowerShell 中将计算值写入 SQL INSERT/UPDATE

】如何在PowerShell中将计算值写入SQLINSERT/UPDATE【英文标题】:HowtowritecalculatedvaluestoSQLINSERT/UPDATEinPowerShell【发布时间】:2021-12-3103:56:59【问题描述】:在我下面的PowerShell中,我在UNC路径中获取所有第一级文件夹,并计算每个文件... 查看详情

php如何把数据写入json文件并在另一php文件读取json数据?

...请不要使用傍门左道。在些感谢帮助我的人。首先,把PHP数组中的数据写入JSON文件。<?php// 生成一个PHP数组$data = array();$data['a'] = 'test';$data['b'] = 'bbb';// 把PHP数组转成JSON字... 查看详情