这篇文章将为大家详细讲解有关利用php怎么对邮政文件进行压缩与解压缩,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
记得要开启zip,把php。ini中=php_zip的扩展。dll前面的分号去掉。
<强>源码范例:
强>
代码如下:
& lt; ?php
//需开启配置php_zip.dll
//phpinfo ();
头(“内容类型:text/html; charset=utf-8");
函数get_zip_originalsize(文件名、路径)美元{
,//先判断待解压的文件是否存在
,如果(! file_exists ($ filename)) {
,,死(“文件美元文件名不存在!“);
,},
,美元开始时间=爆炸(& # 39;',microtime()); //解压开始的时间
//将文件名和路径转成windows系统默认的gb2312编码,否则将会读取不到
$filename=iconv("utf-8","gb2312",$filename);
$path=iconv("utf-8","gb2312",$path);
//打开压缩包
$resource=zip_open($filename);
$i=1;
//遍历读取压缩包里面的一个个文件
while ($dir_resource=zip_read($resource)) {
//如果能打开则继续
if (zip_entry_open($resource,$dir_resource)) {
//获取当前项目的名称,即压缩包里面当前对应的文件名
$file_name=$path.zip_entry_name($dir_resource);
//以最后一个“/狈指?再用字符串截取出路径部分
$file_path=substr($file_name,0,strrpos($file_name, "/"));
//如果路径不存在,则创建一个目录,true表示可以创建多级目录
if(!is_dir($file_path)){
mkdir($file_path,0777,true);
}
//如果不是目录,则写入文件
if(!is_dir($file_name)){
//读取这个文件
$file_size=zip_entry_filesize($dir_resource);
//最大读取6M,如果文件过大,跳过解压,继续下一个
if($file_size<(1024*1024*6)){
$file_content=zip_entry_read($dir_resource,$file_size);
file_put_contents($file_name,$file_content);
}else{
echo "
“。我+ +美元!”此文件已被跳过,原因:文件过大,→“.iconv (“gb2312",“utf-8", file_name美元)!”& lt;/p>“
,,,,}
,,,}
,,,//关闭当前
,,, zip_entry_close ($ dir_resource);
,,}
,}
,//关闭压缩包
, zip_close(资源)美元;,
, endtime美元=爆炸(& # 39;& # 39;());,//解压结束的时间
,这回=美元endtime endtime美元[0]+[1]——(开始时间开始时间美元[0]+ [1]);
,这回美元=圆(这一美元,3);,//保留3为小数
,呼应“& lt; p>解压完毕!,本次解压花费:美元这一秒。;/p>“;
}
$大?get_zip_originalsize (& # 39; 20131101. zip # 39; & # 39;临时/& # 39;);
?在
关于利用php怎么对邮政文件进行压缩与解压缩就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。