php将数组写入到文件的三种方法

本文介绍了使用PHP将数组原样写入文件的三种方法:利用serialize进行序列化存储,使用print_r打印数组到TXT文件,以及通过var_export将数组以完整形式存储。每种方法都有其适用场景和优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php将数组原样写入或保存到文件有三种方法可以实现,
第一种方法是使用serialize,
第二种方法是使用print_r,
第三种方法是使用var_export,
本文章向大家介绍这三种方法是如何将数组写入到文件的,需要的朋友可以参考一下。
第一:serialize方法
使用 serialize 将数组序列化,存储在文件中;调用时,再使用 unserialize 还原。

<?php 
$file='./cache/phone.php'; 
$array=array('color'=> array('blue','red','green'),'size'=> array('small','medium','large')); 
//缓存 
if(false!==fopen($file,'w+')){ 
  file_put_contents($file,serialize($array));//写入缓存 
} 
//读出缓存 
$handle=fopen($file,'r'); 
$cacheArray=unserialize(fread($handle,filesize($file))); 

第二:print_r方法
用print_r 将数组打印到txt文件中。

<?php
$b = array (
    'm' => 'monkey', 
    'foo' => 'bar', 
    'x' => array ('x', 'y', 'z'));
file_put_contents('filename.txt', print_r($b, true));
?>

第三:var_export方法
用var_export 直接将数组以完整数组的形式存储到文件中。

<?php 
$file='./cache/phone.php'; 
$array=array('color'=> array('blue','red','green'),'size'=> array('small','medium','large')); 
//缓存 
$text='<?php $rows='.var_export($array,true).';'; 
if(false!==fopen($file,'w+')){ 
  file_put_contents($file,$text); 
}else{ 
  echo '创建失败'; 
}
要将PHP数组写入二进制文件,您可以使用PHP函数`pack()`和`fwrite()`。 以下是一个示例代码,它将一个PHP数组写入二进制文件中: ```php // PHP数组 $data = array('apple', 'banana', 'orange'); // 打开二进制文件 $file = fopen('data.bin', 'wb'); // 将数组打包为二进制字符串 $packedData = pack('a*a*a*', ...$data); // 将二进制字符串写入文件 fwrite($file, $packedData); // 关闭文件 fclose($file); ``` 在此示例中,`pack()`函数将数组打包为一个二进制字符串。`'a*'`格式指定将每个字符串作为NULL结尾的字符数组打包,并将它们连接到一起。使用`...`操作符将数组传递给`pack()`函数。 接下来,使用`fwrite()`函数将打包的数据写入二进制文件中。最后,使用`fclose()`函数关闭文件。 您可以使用以下代码读取该二进制文件并将其解包为原始数组: ```php // 打开二进制文件 $file = fopen('data.bin', 'rb'); // 读取文件内容 $packedData = fread($file, filesize('data.bin')); // 解包二进制数据为数组 $data = unpack('a*string1/a*string2/a*string3', $packedData); // 输出解包后的数组 print_r($data); // 关闭文件 fclose($file); ``` 在此示例中,`fread()`函数读取整个二进制文件并将其存储在`$packedData`变量中。 然后,使用`unpack()`函数将二进制数据解包为原始数组。`'a*'`格式指定将每个字符串作为NULL结尾的字符数组解包,并将它们存储在不同的数组键中。 最后,使用`print_r()`函数输出解包后的数组。 希望这可以帮助您将PHP数组写入二进制文件并从中读取数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值