php 解压不了,PHP 解压缩 还是不会。。求解决

在PHP中 一个压缩包上传,我已经能够解压开来。

现在如何在解压的同时重命名,并且放到另一个目录下啊?

请大神指教。

解压程式

$zip = zip_open("/php/test/test.zip");

if ($zip) {

while ($zip_entry = zip_read($zip)) {

$fp = fopen("/php/".zip_entry_name($zip_entry), 'w');

if (zip_entry_open($zip, $zip_entry, "r")) {

$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));

fwrite($fp,'$buf');

zip_entry_close($zip_entry);

fclose($fp);

}

}

zip_close($zip);

}

求在中间加上重命名与另存到一个目录下的功能。。。。

zip_entry_name($zip_entry) 得到的是包中的文件名

你用字符串函数处理一下,生成目标文件名就是了

我 echo "zip_entry_name($zip_entry)" 出来的是Array 啊

function zip_entry_name(&$res)

{

if(!$res) return false;

return $res['name'];

}

重新求解决。。。我真弄不了。。。

回复讨论(解决方案)

你的代码中有 $fp = fopen("/php/". zip_entry_name($zip_entry), 'w');

怎么能说 zip_entry_name($zip_entry) 返回的是数组呢?

echo "[zip_entry_name($zip_entry)]"; 出来这个 [zip_entry_name(Array)]

echo "[$zip_entry]"; 出来这个 [Array]

function zip_entry_name(&$res)

{

if(!$res) return false;

return $res['name'];

}

echo zip_entry_name($zip_entry);

出来什么?

出来了,哈哈

又有问题了。。。 我用substr 重新命名了 然后

1.我要放解压开来文件的目录 在哪里设置呢?

2.在哪里将原来的文件替换成我想要的名字呢?

继续求指教。。。

在你的代码中

$fp = fopen("/php/". zip_entry_name($zip_entry), 'w');//这里改成你需要的文件名

if (zip_entry_open($zip, $zip_entry, "r")) {

$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));//这是读取包中的文件

fwrite($fp,'$buf');

老大,你还有其他联系方式吗。。。。

我发现解压开来的东西 里面除了个文件名留着。。。图片都不显示。。。。

我echo $buf 在网页上能显示20行的乱码。。应该大小不错吧 是不是fwrite的问题啊。。还是编码格式?

window 环境?

要用二进制方式打开文件

linux下。

我又在自己的目录下面可以运行 成功了 。

到公用的下面 就只有文件名,图片还是打不开。。。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

文件一个个传,厌烦了吧? 服务器端解压操作说明: 1 用记事本打开 unzip.php ,在第二行,找到 “ $password = "isphp" ” 这一句, 将isphp 改成您的密码,等会解压时会要输入。 2 将 unzip.php 上传到服务器端某个目录下,比如根目录。 3 运行 unzip.php, 看其给出的提示是否支持 zlib 库, 如果不支持,则在下面一步本地压缩时不要将"压缩成Gzip格式"选中。 4 在本机运行 phpZip.exe, 如果第3步中,unzip.php 提示说不支持zlib库,则不要选中 "压缩成Gzip格式", 否则压缩出的文件,在服务器端没法解压, 反之,如果支持的话,就选中,因为压缩成gz格式,可以大大减小文件大小。 5 运行 unzip.php,将刚才在本机压缩出的文件通过 unzip.php 上传,上传后会自动解压。 (也可以通过其它途径如 FTP 将文件上传到服务器,这样只要指定其位置即可。) ------------------------------------------------------- 服务器端打包下载操作说明 1 用记事本打开 unzip.php ,在第二行,找到 “ $password = "isphp" ” 这一句, 将isphp 改成您的密码,等会解压时会要输入。 2 运行 zip.php , 输入想下载的目录,程序会给出一个链接, 点此链接(或者通过 FlashGet 一类工具) 就可以下载。 3 在本地运行 phpZip.exe 将下载下来的文件解压就行。 注: 如果想下载整个 zip.php 所在的当前目录,则输入 "." (点号) 即可。 这种情况下,在本地解压时,选择解压目的地时,最好选择一空的文件夹。 因为,当仅打包下载当前目录下的一个子目录时,在本地解压时, 程序会自动创建一个同名的文件夹, 而下载当前整个目录时,程序不会创建文件夹。 ------------------------------------------------------- 删除文件工具 rm.php 功能说明: 因 Unix/Linux 服务器特殊的文件操作权限的设置, 由程序创建的文件或文件夹, 不一定能通过 FTP 直接删除, 删除时往往会提示没有权限删除该文件。 所谓,解铃还需系铃人,当程序创建的文件或或文件夹无法删除时, 可用程序来删除。 1 同上面一样,这个程序也要设置密码。 2 运行 rm.php 输出要删除的文件夹或文件名,以及管理密码。就可以了。 注: 当您输入的是文件夹的名字时,程序会递归删除该文件夹内 所有的文件, 一定要慎重!!! ------------------------------------------------------- 低版本 PHP 下使用解压或压缩功能说明 程序附带 的 unzip.php3.phpzip.php3.php 两个文件, 是当服务器的 PHP 版较低(一般低于 4.1 左右, 不一定真的 是 PHP3, 呵呵)时使用。可先不管PHP版本,先就使用 unzip.php 当运行 unzip.php 时发现提交后页面没什么反应, 还是老样子,就可能是 PHP 版过低的缘故。此时可用这两个 文件代替前面说的 unizp.phpzip.php 注: 这两个程序都不带密码验证的功能,也就是说任何人, 只要能访问到此页面,都有可能会上传或下载文件。 请使用完毕,务必将此文件从服务器上删除。 以免造成危害。 ------------------------------------------------------- 各文件功能说明: phpZip.exe 本地压缩或解压的程序 unzip.php 服务器端将压缩后文件解开 zip.php 服务器端将文件夹打包压缩下载 unzip.php3.php 基本与 unzip.php 功能相同,主要用在较低版本的PHPzip.php3.php 基本与 zip.php 功能相同,主要用在较低版本的PHP上 rm.php 脚本删除文件或文件夹的工具 phpZipExt.dll 辅助 phpZip 运行的 DLL(没有此DLL程序也可以运行,但不能与Explorer集成) ------------------------------------------------------- 修改记录: 16:25 2003-11-29: 增加 phpZipExt.dll ,使得程序可以与 WinRAR 一样,可以与 Explorer 集成,方便操作。详细说明请看帮助文件。 增加压缩解压时的进度条,使得用户界面更加友好。 14:08 2003-11-30 修改 phpZip.exe 压缩或解压时一开始选中的目录为要操作文件或文件夹相同的目录。 19:43 2004-2-10 增加一个附带文件,rm.php 用来删除服务器上文件或文件夹 增加密码验证功能,使之在服务器上会安全一点。 ------------------------------------------------------- 积分,谢谢啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值