Maison >développement back-end >tutoriel php >Comment créer un fichier RAR compressé en PHP ?

Comment créer un fichier RAR compressé en PHP ?

黄舟
黄舟original
2017-05-20 17:06:083135parcourir

如何在PHP中创建压缩的RAR文件?

在网站中,上传文件大多数都是以压缩包形式存在的,所以我们首先必须要将上传的文件压缩后才能够上传,那么我们如何实现网站中上传文件的自动压缩功能呢?今天就给大家详细介绍一下!

文件压缩主要应用PHP 的预定义类 com,将wscrip.shell 对象作为 com类的参数,最终通过调用 com类的 run()方法实现文件的压缩。

com 类提供了一个将 COM组件整合到 PHP 脚本中的框架,实例化方法如下:

$obj = new COM("server.object")

com类构造函数的语法如下:

string COM::COM( string module_name [, string server_name [, int codepage]] )

参数说明:

module_name:被请求组件的名字 或者 class-id。

server_name   :DCOM 服务器的名字,组件在此服务器上被取用,如果是NULL,那么假定是loaclhost。如果要支持允许DCOM,那么必须将 php.ini 中的 com.allow_dcom设置为 TRUE。

codepage:指定用于将PHP 字符串(php-string)转换成UNICODE 字符串(unicode-strings)的代码页,反之亦然。可用的值有CP_ACP , CP_MACCP , CO_OEMCP ,  CP_SYMBOL , CP_THREAD_ACP, CP_UTF7以及CP_UTF8。

com类中的 run()方法的语法格式如下:

run("winrar a 生成的 rar 文件的路径及名称 要压缩的文件的路径以及名称",1,false);

应用实例

本实例中讲解在PHP中如何创建  RAR文件,具体步骤如下:

(1)创建PHP页面,首先创建一个表单,设置文件域,提交要压缩的文件,设置文本框,提交压缩文件的存储位置,设置按钮,完成表单元素的提交操作。

(2) 在php文件中编写 PHP脚本,通过post方法获取表单提交的数据,通过iconv()函数完成数据编码格式的转换,实例化 com类,调用 run()方法完成文件的压缩操作。

其代码如下:

<?php
header("Content-Type:text/html; charset=utf-8");
if ($_POST[&#39;Submit&#39;]){
    $sourcefile = iconv("utf-8","gb2312",$_POST[&#39;sourcefile&#39;]);  //获取指定文件的路径
    $objfile = $_POST[&#39;objfile&#39;]."\\".time();                    //定义压缩文件的存储位置和名称
    $objfile = iconv("utf-8","gb2312",$objfile);                  //实现编码转换
    $obj= new COM("wscript.shell");                               //实例化 com类
    $obj -> run("winrar a".$objfile."".$sourcefile."",1,false);   //调用类中的方法
    echo "<script>alert(&#39;文件压缩完成!&#39;);</script>";
}
?>

运行本实例,首先选择要压缩的文件,然后设置压缩文件的存储位置,单击“提交”按钮,就完成了!

注意:

在执行文件压缩操作时,切记在文件的存储路径中不要出现空格(包括被压缩文件的路径、名称一级压缩文件的存储路径),否则压缩操作将不会正确执行!

到这里我们就介绍完如何在PHP中创建压缩的RAR文件了,小伙伴们都掌握了吗?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn