首页 > 作文

深入PHP数据缓存的使用说明

更新时间:2023-04-06 12:14:47 阅读: 评论:0

复制代码 代码如下:

<?php

// //www.jb51.net/article/23093.htm

function t_cache($name, $value) {

// 设置相对或者绝对目录,末尾不要加 “/”

$cache_dir = “./cache”;

// 设置扩展名

$cache_extension = “.php”;

$cache_str_begin = “<?php\n//cache created at: ” . date ( “y-m-d h:i:s” ) . “\n”;

if (! is_array ( $value )) {

$cache_str_middle = “\$$name = \”$value\”;”;

} el {

$cache_str_middle = “\$$name = ” . arrayeval ( $value ) . “;”;

}

$cache_str_end = “\n?>一不小心爱上你剧情介绍221;;

$cache_str = $cache_str_begin . $cache_str_middle . $cache_str_end;

// 缓存文件路径

$cache_file = “$cache_dir/$name$cache_extension”;

if ($fp = @fopen ( $cache_file, “wb” )) {

fwrite ( $fp, $cache_str );

fclo ( $fp );

return true;

} el {

echo $cache_file;

exit ( “can not write to cache files, plea check cache directory ” );

return fal;

}

}

// 将array变成字符串, 来自discuz!
function arrayeval($array, $level = 0) {
if (! is_array ( $array )) {
return “\”$array\””;
}

$space = “”;
for($i = 0; $i <= $level; $i ++) {
$space .= “\t”;
}
$evaluate = “array\n$space(\n”;
$comma = $space;
if (is_array ( $array )) {
foreach ( $array as $key => $val ) {
$key = is_string ( $key ) ? “\”” . addcslashes ( $key, “\”\\” ) . “\”” : $key;
$val = ! is_array ( $val ) && (! preg_match ( “/^\-?[1-9]\d*$/”, $val ) || strlen ( $val ) > 12) ? R英雄人物故事20;\”” . addcslashes ( $val, “\”\\” ) . “\”” : $val;
if (is_array ( $val )) {
$evaluate .= “$comma$key => ” . arrayeval ( $val, $level + 1 );
} el {
$evaluate .= “$comma$key => $val”;
}
$comma = “,\n$space”;
}
}
$evaluate .= “\n$space)”;
return $evaluate;
}

$test_array = array (带虎的祝福语
“6b” => “a\\”,
“b”,
“c”,
array (
“c”,
“d”
)
);

$fileandvarname = “newfile”;

// 在生成$encode_str的时候,为使字符串中原有字符格式不变,系统在编译时会给字符串中预定义字符前加 \ 使预定义字符保留在字符串中,但输出或打印字符串的时候只会输出打印出预定义字符,不会打印出预定义字符前面的 \
$encode_str = json_encode ( $test_array );
// 因为这里要把字符串打印成php代码,输出的时候,字符串中预定义字符会打乱程序运行,所以要在原有转义字符前再加转移字符,使字符串输出打印时在预定义字符前转义字符也能输出
$addslashes_str = addslashes ( $encode_str ); // addslashes将字符串中预核是什么意思定义字符前加 \ 使其能存放在字符串中不产生作用,不参与程序运行
echo stripslashes($addslashes_str); // 反转义函数,可去掉字符串中的反斜线字符。若是连续二个反斜线,则去掉一个,留下一个。若只有一个反斜线,就直接去掉。
echo “<br>”;

// 可以传数组对象,也可以传转换成json的字符串,转换成json字符串,使用时需要再转换成数组
t_cache ( “$fileandvarname”, $addslashes_str );
var_dump 限额设计( $addslashes_str );
echo “<br/>”;
include_once “./cache/$fileandvarname.php”;
var_dump ( $$fileandvarname );
echo “<br/>”;

$decode_arr = ( array ) json_decode ( $$fileandvarname );
var_dump ( $decode_arr );
echo “<br/>”;

// 缓存另一种方法,用rialize把数组序列号成字符串,存放在任意扩展名文件中,使用时用fopen打开读取其中字符串内容,再用unrialize反序列化成原数据
$rialize_str = rialize ( $test_array );
echo $rialize_str; // 这个就是描述过的数组但在这里是一个字符串而已
echo “<br/>”;
$unrialize_str = unrialize ( $rialize_str ); // 把描述过的数据恢复
var_dump($unrialize_str); //还原成为 $test_array ,数组结构并没有丢失。
?>

本文发布于:2023-04-06 12:14:45,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/6931f75eb63f9c20781e70f675ef7a24.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:深入PHP数据缓存的使用说明.doc

本文 PDF 下载地址:深入PHP数据缓存的使用说明.pdf

标签:字符串   字符   数组   斜线
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图