php將數組或對象寫入到文件的三種方法

php將數組或對象原樣寫入或保存到文件有三種方法能夠實現

第一種方法是使用serialize,php

第二種方法是使用print_r,nginx

第三種方法是使用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-fpm

<?php
$b = array (
    'm' => 'monkey', 
    'foo' => 'bar', 
    'x' => array ('x', 'y', 'z'));

$results = print_r($b, true); 
file_put_contents('filename.txt', print_r($b, true));
?>

第三:var_export方法

用var_export 直接將數組以完整數組的形式存儲到文件中。spa

<?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 '建立失敗'; 
}

 

將對象完整的存儲並追加到文件末尾debug

$file = "notic_" . date("Ymd") . ".log";
$ct = date("Y-m-d H:i:s", time());

file_put_contents($file, var_export($object,true)."\r\n", FILE_APPEND);

 

ps: 正常狀況下輸出到網頁的數組會有限制,調試

php var_dump函數對數組進行打印時,對多維數組中數組的層級越多越深層,子數組會不顯示,只用省略號代替。這樣一來不便於程序的調試code

php的var_dump函數是php模塊中xdebug模塊所支持的,因此接下來咱們須要配置這個xdebug便可。

修改 php.ini

;設置顯示最大的子節點數
xdebug.var_display_max_children=128
;設置顯示最大的字節數
xdebug.var_display_max_data=512
;設置顯示最大得層級(深度)
xdebug.var_display_max_depth=15

 

而後重啓 php 服務

systemctl reload php-fpm nginx
相關文章
相關標籤/搜索