【发布时间】:2012-08-31 15:16:36
【问题描述】:
在过去的一个小时里,我一直在搜索、添加和失败如何解压缩文件。 我经常使用 php 下载 zip。我需要将 zip 的内容提取到一个名为 zips 的文件夹中,这并不重要(只是不是同一个目录)。如果这有什么不同的话,我正在使用具有无限空间和带宽的共享主机。
我下载的 zip 是 1 个 zip,里面有 5 个 zip,这 5 个 zip 中的每一个都有 1 个 csv。我需要读取每个 csv 并将信息存储到数据库中,我已经有代码,但我无法打开任何 zip 文件。
我已经尝试了以下代码,但我都没有运气。 我也尝试了 php.net 上的解压缩功能,也没有运气。
有什么建议吗?
$local_file = '_08222012_213000.zip';
$zip = zip_open($local_file);
if (is_resource($zip)) {
while ($zip_entry = zip_read($zip)) {
$fp = fopen(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 = new ZipArchive;
$res = $zip->open($local_file);
if ($res === TRUE) {
$zip->extractTo('zips/');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
}
编辑:如果其他人将来遇到问题,我可以使用此代码。
//Change directory
chdir("zips/");
exec("unzip ./$local_file");
【问题讨论】:
-
字符串“没有运气”和“没有工作”不是 PHP 中的内置错误消息。您的代码究竟如何不起作用?您收到任何错误消息吗?
-
会发生什么?您收到任何错误消息吗?您是否在 PHP 中启用了错误消息?
-
我收到的唯一错误消息如下,但在 php.net 上已指出:警告:zip_read() 期望参数 1 是资源,/home/cindyhod/public_html/test/ 中给出的整数ftp/ftp2.php 在第 72 行
-
我回显“开始解压缩”然后什么也没有,或者使用底部示例“失败”。是的,错误已启用。
-
打开 zip 文件失败;我的猜测是你的文件路径不正确。