array("blue", "red", "green"), "size" => array">
当前位置:Gxlcms > PHP教程 > php怎么把数组保存为文件格式?实例代码

php怎么把数组保存为文件格式?实例代码

时间:2021-07-01 10:21:17 帮助过:3人阅读

  1. $file="./cache/file.cache";
  2. $array = array("color" => array("blue", "red", "green"),
  3. "size" => array("small", "medium", "large"));
  4. //缓存
  5. file_put_contents($file,serialize($array));//写入缓存
  6. //读出缓存
  7. $handle = fopen($file, "r");
  8. $cacheArray = unserialize(fread($handle, filesize ($file)));

第二种方法:

先贴几个函数:

  1. //写入
  2. function cache_write($name, $var, $values) {
  3. $cachefile = S_ROOT.'./data/data_'.$name.'.php';
  4. $cachetext = " "if(!defined('CHECK_CODE')) exit('Access Denied');\r\n".
  5. '$'.$var.'='.arrayeval($values).
  6. "\r\n?>";
  7. if(!swritefile($cachefile, $cachetext)) {
  8. exit("File: $cachefile write error.");
  9. }
  10. }
  11. //数组转换成字串
  12. function arrayeval($array, $level = 0) {
  13. $space = '';
  14. for($i = 0; $i <= $level; $i++) {
  15. $space .= "\t";
  16. }
  17. $evaluate = "Array\n$space(\n";
  18. $comma = $space;
  19. foreach($array as $key => $val) {
  20. $key = is_string($key) ? '\''.addcslashes($key, '\'\\').'\'' : $key;
  21. $val = !is_array($val) && (!preg_match("/^\-?\d+$/", $val) || strlen($val) > 12) ? '\''.addcslashes($val, '\'\\').'\'' : $val;
  22. if(is_array($val)) {
  23. $evaluate .= "$comma$key => ".arrayeval($val, $level + 1);
  24. } else {
  25. $evaluate .= "$comma$key => $val";
  26. }
  27. $comma = ",\n$space";
  28. }
  29. $evaluate .= "\n$space)";
  30. return $evaluate;
  31. }
  32. //写入文件
  33. function swritefile($filename, $writetext, $openmod='w') {
  34. if(@$fp = fopen($filename, $openmod)) {
  35. flock($fp, 2);
  36. fwrite($fp, $writetext);
  37. fclose($fp);
  38. return true;
  39. } else {
  40. runlog('error', "File: $filename write error.");
  41. return false;
  42. }
  43. }

调用:

cache_write('file', 'arrayName', $array);

include格式:

@include ('./data/data_cache.php'); //数组重新排序 sort($arrayName);

人气教程排行