Heim  >  Artikel  >  Backend-Entwicklung  >  php将数组储存的方法总结

php将数组储存的方法总结

WBOY
WBOYOriginal
2016-06-20 13:01:361065Durchsuche

php 缓存数组形式的变量,实际上就是将 php 将数组写入到一个文本文件或者后缀名为 .php 存储起来,使用的时候直接调用这个文件。

那么如何使用 php 将数组保存为文本格式的文件呢?

下面分享三种方法实现将 php 数组写入到文件以缓存数组。

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

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

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

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

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

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


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn