⑴ 怎样用php压缩解压rar,zip文件
要用PHP压缩解压文件,常用的方法是调用命令行去执行解压缩操作
可以用exec() 、system()等函数调用shell命令
linux下解压缩命令是tar [-cxtzjvfpPN] 文件与目录,tar命令可以压缩解压.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、.tar.Z、.zip这些类型的文件
Linux下默认无法使用rar格式的,要另外安装RAR for Linux,然后使用rar和unrar命令解压缩rar格式的压缩文件
⑵ php 怎么对url的参数串进行压缩和解压缩
如果参数名和值全部是已知的,那么做一个映射表就可以了。
如果参数的值涉及用户提交的内容,对于过长的内容,最好使用POST,并开启Gzip压缩。
关于URL的长度:
1,普通用户很少通过修改url来实现跳转
2,太短的参数名称就很难理解含义,比如content如果缩短成c,你知道这代表什么意思么?
3,如果说为了便于保存和分享,那么可以考虑short url的处理方式
4,url的长度对性能的影响微乎其微,除非是超长文本,那就是程序设计的问题了
5,如果说刻意追求极短的url,还要进行压缩和解压缩步骤,真的有点画蛇添足了
⑶ php如何压缩一个文件夹里面所有的文件到zip文件里面
//函数:文件压缩 //压缩参数:需要压缩的文件或文件夹(文件可为数组),压缩后的zip文件名及存放路径,压缩类型1:文件夹2:文件,后续操作1:压缩后下载;2:存放在服务器上(默认为/@Upload下) //压缩文件夹示例:Tozip("./","../".date("d-H-i-s").".zip",1,2); //压缩文件示例: // $aaa=array("../1.txt","../2.txt"); // Tozip($aaa,"../2.zip",2);FunctionTozip($Path, $ZipFile, $Typ=1, $Todo=1){//IF(!is_writeable($Path)){Exit("文件夹不可写!");}$Path=Str_iReplace("\\","/",($Path));IF(Is_Null($Path) OrEmpty($Path) Or!IsSet($Path)){ReturnFalse;}IF(Is_Null($ZipFile) OrEmpty($ZipFile) Or!IsSet($ZipFile)){ReturnFalse;} Include_once("inc/Class_Zip.php");$zip=NewPHPZip;IF(SubStr($Path,-1,1)=="/"){$Path=SubStr($Path,0, StrLen($Path)-1);} OB_end_clean();Switch($Typ){Case"1":$zip-ZipDir($Path, $ZipFile, $Todo);Break;Case"2":$zip-ZipFile($Path,
⑷ PHP网页上打包文件生成压缩文件zip,并弹出下载
既然你只是想学习如何打包.
那我重点就回答你这一块,正好我刚刚用到;
$filename="./".date('YmdH').".zip";//最终生成的文件名(含路径)
//生成文件
$zip=newZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释
if($zip->open($filename,ZIPARCHIVE::CREATE)!==TRUE){
exit('无法打开文件,或者文件创建失败');
}
//$fileNameArr就是一个存储文件路径的数组比如array('/a/1.jpg,/a/2.jpg....');
foreach($fileNameArras$val){
$zip->addFile($val,basename($val));//第二个参数是放在压缩包中的文件名称,如果文件可能会有重复,就需要注意一下
}
$zip->close();//关闭
//下面是输出下载;
header("Cache-Control:max-age=0");
header("Content-Description:FileTransfer");
header('Content-disposition:attachment;filename='.basename($filename));//文件名
header("Content-Type:application/zip");//zip格式的
header("Content-Transfer-Encoding:binary");//告诉浏览器,这是二进制文件
header('Content-Length:'.filesize($filename));//告诉浏览器,文件大小
@readfile($filename);//输出文件;