这里有新鲜出炉的 PHP 面向对象编程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
这篇文章主要介绍了 PHP 解压 ZIP 文件到指定文件夹的方法, 结合实例形式分析了 php 实现的 zip 操作类及相应使用技巧, 需要的朋友可以参考下
本文实例讲述了 PHP 解压 ZIP 文件到指定文件夹的方法。分享给大家供大家参考,具体如下:
- /**
- * function: 解压zip 格式的文件
- * author:friker
- * date:2015-15-14
- * reference:http://php.net/manual/zh/ref.zip.php
- * all rights reserved:wujiangwei123@126.com
- */
- class Unzip {
- public
- function __construct() {
- //init code here...
- header("content-type:text/html;charset=utf8");
- }
- /**
- * 解压文件到指定目录
- *
- * @param string zip压缩文件的路径
- * @param string 解压文件的目的路径
- * @param boolean 是否以压缩文件的名字创建目标文件夹
- * @param boolean 是否重写已经存在的文件
- *
- * @return boolean 返回成功 或失败
- */
- public
- function unzip($src_file, $dest_dir = false, $create_zip_name_dir = true, $overwrite = true) {
- if ($zip = zip_open($src_file)) {
- if ($zip) {
- $splitter = ($create_zip_name_dir === true) ? ".": "/";
- if ($dest_dir === false) {
- $dest_dir = substr($src_file, 0, strrpos($src_file, $splitter))."/";
- }
- // 如果不存在 创建目标解压目录
- $this - >create_dirs($dest_dir);
- // 对每个文件进行解压
- while ($zip_entry = zip_read($zip)) {
- // 文件不在根目录
- $pos_last_slash = strrpos(zip_entry_name($zip_entry), "/");
- if ($pos_last_slash !== false) {
- // 创建目录 在末尾带 /
- $this - >create_dirs($dest_dir.substr(zip_entry_name($zip_entry), 0, $pos_last_slash + 1));
- }
- // 打开包
- if (zip_entry_open($zip, $zip_entry, "r")) {
- // 文件名保存在磁盘上
- $file_name = $dest_dir.zip_entry_name($zip_entry);
- // 检查文件是否需要重写
- if ($overwrite === true || $overwrite === false && !is_file($file_name)) {
- // 读取压缩文件的内容
- $fstream = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));@file_put_contents($file_name, $fstream);
- // 设置权限
- chmod($file_name, 0777);
- echo "save: ".$file_name."<br />";
- }
- // 关闭入口
- zip_entry_close($zip_entry);
- }
- }
- // 关闭压缩包
- zip_close($zip);
- }
- } else {
- return false;
- }
- return true;
- }
- /**
- * 创建目录
- */
- public
- function create_dirs($path) {
- if (!is_dir($path)) {
- $directory_path = "";
- $directories = explode("/", $path);
- array_pop($directories);
- foreach($directories as $directory) {
- $directory_path. = $directory."/";
- if (!is_dir($directory_path)) {
- mkdir($directory_path);
- chmod($directory_path, 0777);
- }
- }
- }
- }
- }
- /*
- using:
- $z = new Unzip();
- $z->unzip("./bootstrap-3.3.4.zip",'./unzipres/', true, false);
- */
希望本文所述对大家 PHP 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0806/341099.html