用php生成的缓存文件 .cache 大小在100k左右,如果全部生成缓存,文件数量大概会100万多个,有什么办法能压缩一下吗?
希望能直接给出代码

解决方案 »

  1.   

    程序优化需要很多的缓存文件,如果文件比较大,可以使用php的php_strip_whitespace函数去掉多余空白来减小文件体积大小<?php    $filename = gRootPath . 'cache/some_file.php';
        if (file_put_contents($filename, $cache_body)) {
                file_put_contents($filename, php_strip_whitespace($filename));
        }?>
      

  2.   

    谢谢YamateDD,经测试,效果不明显
      

  3.   

    如果你的服务器内存大的话,你用memcache缓存技术好拉
      

  4.   

    http://topic.csdn.net/u/20091109/16/a7ce27e2-8417-4522-b682-676e8f3f60bc.html
      

  5.   


    index.php
    PHP code<?php
    $str = "由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    由于链接中所传的参数不能给用户看到, 所以使用mcrypt_cfb进行了加密,再用base64_encode进行编码,但结果字符串太长了,传过去有些值丢失了,请问怎么解决这个问题? 
    ";$compress = gzcompress($str, 9);
    echo "<a href=b.php?q=".urlencode(base64_encode($compress)).">衔接</a>";?>
    b.php
    PHP code<?php
    echo gzuncompress(base64_decode($_GET['q']));
    ?>
      

  6.   

    3。26kb压缩后只有278字节。
    经测试,建议用gzdeflate,gzinflate;压缩率更高。
    $gzdeflate = gzdeflate($str, 9);
    echo "<a href=b.php?c=".urlencode(base64_encode($gzdeflate)).">衔接</a>\r\n";echo gzinflate(base64_decode($_GET['c']));你还可以吧所有的 缓存都放在一个文件或几个文件。
    压缩后的数据是没有换行符的,就一行一个 缓存数据。将行数和对应的缓存关联起来。
    要用的时候读取就可以了(只读那一行)