Rumah > pembangunan bahagian belakang > tutorial php > php将数组存储为文本文件的三种方法

php将数组存储为文本文件的三种方法

墨辰丷
Lepaskan: 2023-03-30 08:54:02
asal
4552 orang telah melayarinya

本篇文章主要介绍php将数组存储为文本文件的三种方法,感兴趣的朋友参考下,希望对大家有所帮助。

(1)利用serialize 将数组序列化存储为文本文件,调用时候再使用unserialize 还原

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

(2)自创的将数组保存为标准的数组格式,虽然保存时复杂了点但是调用时简单

<?php 
$file=&#39;./cache/phone.php&#39;; 
$array=array(&#39;color&#39;=> array(&#39;blue&#39;,&#39;red&#39;,&#39;green&#39;),&#39;size&#39;=> array(&#39;small&#39;,&#39;medium&#39;,&#39;large&#39;)); 
cache_write($file,$array,&#39;rows&#39;,false); 
 
//写入 
function cache_write($filename,$values,$var=&#39;rows&#39;,$format=false){ 
  $cachefile=$filename; 
  $cachetext="<?php\r\n".&#39;$&#39;.$var.&#39;=&#39;.arrayeval($values,$format).";"; 
  return writefile($cachefile,$cachetext); 
} 
 
//数组转换成字串 
function arrayeval($array,$format=false,$level=0){ 
  $space=$line=&#39;&#39;; 
  if(!$format){ 
    for($i=0;$i<=$level;$i++){ 
      $space.="\t"; 
    } 
    $line="\n"; 
  } 
  $evaluate=&#39;Array&#39;.$line.$space.&#39;(&#39;.$line; 
  $comma=$space; 
  foreach($array as $key=> $val){ 
    $key=is_string($key)?&#39;\&#39;&#39;.addcslashes($key,&#39;\&#39;\\&#39;).&#39;\&#39;&#39;:$key; 
    $val=!is_array($val)&&(!preg_match(&#39;/^\-?\d+$/&#39;,$val)||strlen($val) > 12)?&#39;\&#39;&#39;.addcslashes($val,&#39;\&#39;\\&#39;).&#39;\&#39;&#39;:$val; 
    if(is_array($val)){ 
      $evaluate.=$comma.$key.&#39;=>&#39;.arrayeval($val,$format,$level+1); 
    }else{ 
      $evaluate.=$comma.$key.&#39;=>&#39;.$val; 
    } 
    $comma=&#39;,&#39;.$line.$space; 
  } 
  $evaluate.=$line.$space.&#39;)&#39;; 
  return $evaluate; 
} 
 
//写入文件 
function writefile($filename,$writetext,$openmod=&#39;w&#39;){ 
  if(false!==$fp=fopen($filename,$openmod)){ 
    flock($fp,2); 
    fwrite($fp,$writetext); 
    fclose($fp); 
    return true; 
  }else{ 
    return false; 
  } 
}
Salin selepas log masuk

(3)利用 var_export 将数组直接保存为数组形式存储到文本文件中

<?php 
$file=&#39;./cache/phone.php&#39;; 
$array=array(&#39;color&#39;=> array(&#39;blue&#39;,&#39;red&#39;,&#39;green&#39;),&#39;size&#39;=> array(&#39;small&#39;,&#39;medium&#39;,&#39;large&#39;)); 
//缓存 
$text=&#39;<?php $rows=&#39;.var_export($array,true).&#39;;&#39;; 
if(false!==fopen($file,&#39;w+&#39;)){ 
  file_put_contents($file,$text); 
}else{ 
  echo &#39;创建失败&#39;; 
}
Salin selepas log masuk

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

php实现生成验证码的方法及实例

PHP模板引擎Smarty中变量的用法及实例详解

PHP模板引擎Smarty之配置文件在模板变量中的用法及实例详解

Atas ialah kandungan terperinci php将数组存储为文本文件的三种方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan