function
arrtostr(
$arr
,
$t
=
""
){
$str = " array {$t}( " ;
foreach ( $arr as $k => $v ){
$k = str_replace ( " ' " , " /' " , $k );
if (! is_array ( $v )){
$v = str_replace ( " ' " , " /' " , $v );
$str .= " {$t} '{$k}' => '{$v}', " ;
} elseif ( is_array ( $v )){
$str .= " {$t} '{$k}' => " . arrtostr( $v , $t . " " ) . " , " ;
}
}
$str .= " {$t}) " ;
return $str ;
}
$str = " array {$t}( " ;
foreach ( $arr as $k => $v ){
$k = str_replace ( " ' " , " /' " , $k );
if (! is_array ( $v )){
$v = str_replace ( " ' " , " /' " , $v );
$str .= " {$t} '{$k}' => '{$v}', " ;
} elseif ( is_array ( $v )){
$str .= " {$t} '{$k}' => " . arrtostr( $v , $t . " " ) . " , " ;
}
}
$str .= " {$t}) " ;
return $str ;
}
上面的函数可以将多维数组输出到字符串,字符串又可以用eval执行,直接赋值到数组,这样就可以用文本文件作为缓存保存少量数据,而且比序列化结构清晰,可以直接修改数据!用法如下:
$a
=
arrtostr(
$_SERVER
);
eval ( " $a = $a; " );
print_r ( $a );
eval ( " $a = $a; " );
print_r ( $a );