用序列化好像效果还行吧,还真没有用php序列化过,用java弄过,效率将就凑合
帮你up

解决方案 »

  1.   

    不建议用serialize~~以前我在用serialize处理数组数据并保存的时候数据大点在读取时有时候出错~~
    效率的问题,倒还是其次~~
      

  2.   

    上面两个函数都是把数据以php代码方式缓存到文件,再用时include进来。
    因为有addslashes所以取出时要stripslashes
    但是写入时为什么要addslashes呢?很奇怪。
    处理字符串的方法也很奇怪,为什么不用<<<呢?
    为什么要把对数组的处理单列呢?直接对$contents做serialize不就行了吗?
    再有既然生成的是程序,那为什么不把解码的处理一并放到生成的程序里呢?测试例:
    <?php
    //试验数组
    $ar = array('a'=>"23de");
    //序列化
    $s = serialize($ar);
    //构造程序串
    $str =<<< TEXT
    <?php
    \$cache =<<< EOF
    $s
    EOF;
    \$ar = unserialize(\$cache);
    ?>
    TEXT;
    //写入到文件
    file_put_contents("test.php", $str);
    ?>
    以上完成缓存工作
    test.php的内容为
    <?php
    $cache =<<< EOF
    a:1:{s:1:"a";s:4:"23de";}
    EOF;
    $ar = unserialize($cache);
    ?>取回时
    <?php
    include "test.php";
    print_r($ar);
    ?>
      

  3.   

    多谢唠叨:)
    忘了有<<<这玩意了^_^
    一开始我这样做没用<<<的话不转意不行,现在学习了,多谢
      

  4.   

    不需要,包含在串中的字符“$”只会在eval时才视为变量前缀