Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5096392
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类:

2010-08-22 23:04:37

<?php
/**
* 将一个数组写入文件
*
* $file 文件路径
* $array 需要写入文件的数组
* $arrayName 缓存文件中该数组的名称
*/

function arrayToFile($file,$array,$arrayName)
{
file_put_contents($file,'.$arrayName.'='.arrayToStr($array).'; ?>');
}
/**
* 将一个数组还原为字符串
*
* $array 数组
*/
function arrayToStr($array)
{
if (is_string($array)) return '\''.str_replace('\'','\\\'',$array).'\'';
if (is_numeric($array)) return $array;
if (is_bool($array)) return $array ? 'true' : 'false';
if (is_null($array)) return '\'\'';
$arrayStr = '';
foreach ($array as $key => $value)
{
$arrayStr .= ','.(is_string($key) ? '\''.$key.'\'' : $key).'=>'.arrayToStr($value);
}
return 'array('.substr($arrayStr,1).')';
}
?>


 
uchome是用了下面的函数干的。
 
 

/**
 * 数组转换成字串
 * @param array $array 要转换的数组
 * @param int $level 数组的层次
 * @return string 返回转换后的字符串
 */
function arrayeval($array, $level = 0) {
    $space = '';
    for($i = 0; $i <= $level; $i++) {
        $space .= "\t";
    }
    $evaluate = "Array\n$space(\n";
    $comma = $space;
    foreach($array as $key => $val) {
                //addcslashes($key, '\'\\');只对'与\进行转义
        $key = is_string($key) ? '
\''.addcslashes($key, '\'\\').'\'' : $key;
                //如果$key不是数字,则设置为字符串,如果是数字,则直接取数字
        $val = !is_array($val)&&(!preg_match("/^\-?\d+$/", $val) || strlen($val) > 12 || substr($val, 0, 1)=='0') ? '\''.addcslashes($val, '\'\\').'\'' : $val;
        //如果$val不是数字,则设置为字符串,如果是数字,则直接取数字
                if(is_array($val)) {
                    //如果是数组,则再一次进行转换
            $evaluate .= "$comma$key => ".arrayeval($val, $level + 1);
        } else {
            $evaluate .= "$comma$key => $val";
        }
        $comma = ",\n$space";
    }
    $evaluate .= "\n$space)";
    return $evaluate;
}


阅读(2500) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-12-07 11:38:31

貌似很麻烦啊 file_put_contents($file,var_export($array,true));

chinaunix网友2010-08-25 08:38:32

Download More than 1000 free IT eBooks: http://free-ebooks.appspot.com