php在线文件与文件夹压缩实例代码
注明这款php教程文件压缩代码他要借助于zip.exe文件哦,所以我们要把zip.exe压缩文件给拿出来哦。
<?php
if ( !IsSet($_GET['dirname']) )
{
show_input_form() ;
}
else
{
// check if empty
if ( empty($_GET['dirname']) )
{
hg_exit("请输入文件夹名!") ;
}// check valid dirname
if ( FALSE !== strpos($_GET['dirname'], "/") )
{
hg_exit(""/" 是非法的文件夹名!") ;
}
if ( FALSE !== strstr($_GET['dirname'], "..") )
{
hg_exit("".." 是非法的文件夹名!") ;
}// check valid dir
if ( !is_dir($_GET['dirname']) )
{
hg_exit(""{$_GET['dirname']}" 不是一个有效的文件夹!") ;
}$szData = "" ;
$szInfo = "" ;$file_count = @ZipDir($_GET['dirname'], &$szData, &$szInfo) ;
$info_size_16byte = @sprintf("%016d", @strlen($szInfo)) ;
$szData = @sprintf("%016d",$file_count) . $info_size_16byte . $szInfo . $szData ;
$filename = $_GET['dirname'] . ".dat" ;
if ( function_exists(gzencode) )
{
$szData = gzencode($szData) ;
$filename .= ".gz" ;
}
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: " . strlen($szData));
Header("Content-Disposition: attachment; filename=$filename");echo $szData ;
}
function show_input_form()
{
echo HtmlHead("文件打包") ;
echo "<form name="input">n"
. "请输入要打包的文件夹,注意,仅当前目录下的文件夹才可以下载!<p>n"
. "<input name="dirname">n"
. "<input type="button" value="确定" onClick="show_download_link(dirname.value);">n"
. "</form>n" ;
echo "<script>n"
. "input.dirname.focus();n"
. "function show_download_link(dir)n"
. "{"
. " var top = (screen.height-200)/2 ;n"
. " var left = (screen.width-300)/2 ;n"
. " newwin=window.open('', '', 'width=300,height=200,top=' + top + ',left=' + left + ', resizable=0,scrollbars=auto');n"
. " url = "{$_SERVER['PHP_SELF']}" + "?dirname=" + dir ;n"
. " newwin.document.write('<a href=' + url + '>点击此链接下载,<br>或者右键点击此处选择"另存为"</a>');n"
. "}"
. "</script>n" ;
echo HtmlFoot() ;
}
function ZipDir($szDirName, &$szData, &$szInfo)
{
// write dir header
$szInfo .= "$szDirName|[dir]n" ;
$file_count = 0 ;
$hDir = OpenDir($szDirName) ;
while ( $file = ReadDir($hDir) )
{
if ( $file=="." || $file==".." ) continue ;$szCurFile = "$szDirName/$file" ;
if ( Is_Dir($szCurFile) )
{
$file_count += ZipDir($szCurFile, &$szData, &$szInfo) ;
}
else if ( Is_File($szCurFile) )
{
$hCurFile = fopen($szCurFile, "rb") ;
$size = filesize($szCurFile) ;
$szStream = fread( $hCurFile, $size ) ;
fclose($hCurFile) ;
$file_count++ ;// write info
$szInfo .= "$szCurFile|$sizen" ;// write data
$szData .= $szStream ;
}
}// write dir footer
$szInfo .= "$szDirName|[/dir]n" ;
return $file_count ;
}
function hg_exit($str)
{
echo HtmlHead("Error, exit!") ;
echo "<h5>" . $str . "</h5>" ;
echo HtmlFoot() ;
exit ;
}
function HtmlHead($title)
{
return "<html>nn<head>n"
. "<meta http-equiv="Content-Type" content="text/html; charset=gb2312">n"
. "<style type="text/css教程">n"
. "body,input,td{font:12px verdana}n"
. "</style>n"
. "</head>nn<body>nn" ;
}
function HtmlFoot()
{
return Copyright() . "n</body>nn</html>" ;
}
function Copyright()
{
return "<center><font size="5" face="楷体_GB2312" color="red">使用完请立即删除本文件,以避免被其它人发现使用!</font></center>n"
. "<br><hr color="#003388">n"
. "<center>n"
. "<p style="font-family:verdana; font-size:12px">Contact us: n"
. "<a href="http://www.111cn.net/" target="_blank">http://www.111cn.net/</a></p>n"
. "</center>n"
. "</body>n"
. "n"
. "</html>" ;
}?>
PHP3 Cryption是一个非常容易被破解,不安全的加密功能,不应该是非常重要的东西用。虽然加密是好的,它不会阻碍对尖端开裂程序的严格考验。
不过,试试吧...这是一个伟大的方式来加密和解密字符串。与许多隐窝功能,这是双向的。基于一个密码,您可以加密或解密。您也可以解密或加密过无数次,通过循环或其他方法。字母表中的字符也是变化的。所有这些事情让你修改和巩固加密。
关于这最佳的部分?您可以加密与解密或一张纸和一支铅笔一块。这需要相当长一点,但你并不需要一台电脑是附近使用它,如果你曾经失去的代码,如果你还记得你的技术可以解密。
我写在约一小时这些功能,经过几次不成功的和令人沮丧的尝试,并获得了更长的时间我没有出路的。成功的那天后的最佳方式做它突然实现。
请注意,这不会加密/解密无形字符(空格),如换行符(n)或标签(吨)!很抱歉,但我尝试。如果你找到一个办法,请让我知道!
* /
highlight_file(“crypto.php教程”);
代码如下 | 复制代码 |
$ralphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !,.:;?~@#$%^&*()_+-=][}{/><"'";
function encrypt ($password,$strtoencrypt) { global $ralphabet; for( $i=0; $i<strlen($password); $i++ ) $i=0; while($i<$c) $n++; return $encrypted_string; }
global $ralphabet; for( $i=0; $i<strlen($password); $i++ ) $i=0; while($i<$c) $n++; return $decrypted_string;
global $ralphabet; for( $i=0; $i<strlen($password); $i++ )
print "<tr><td></td>";
print "</table>n"; } } // end class Crypto // Example written by Macro Zeng |
一、如何不能创建可以设置目录的权限一盘0777就可以,用程序改变目录权限用chmod 二、用ftp 三、用服务器权限就更好办了,
在php中创建目录我们会用到mkdir() 函数来创建目录
*/
代码如下 | 复制代码 |
$dir = "abc"; if( mkdir($dir,0777)) { echo '目录'.$dir.'成功创建'; } else { echo '创建目录失败,请检查权限'; } |
/*
代码如下 | 复制代码 |
mkdir函数说明 mkdir(path,mode,recursive,context) path 必需。创建的目录的名称。 mode 必需。默认是 0777。 recursive 必需。设置递归模式。 context 必需。规定文件句柄的环境。 |
mkdir相关实例
http://www.111cn.net/phper/24/mkdir-05.htm
无法创建文件夹原因分析
一、如何不能创建可以设置目录的权限一盘0777就可以,用程序改变目录权限用chmod
二、用ftp
三、用服务器权限就更好办了,
umask是0777的时候,当然是这样,自己手动用chmod改一下不就行了
chmod函数说明
chmod(file,mode)
如:
chmod("/somedir/somefile", 0755);
chmod相关实例
http://www.111cn.net/phper/24/chmod-php.htm
http://www.111cn.net/phper/24/ad7d09f46fce96a82f06fe711adeb47b.htm
代码如下 | 复制代码 |
<? function phpftp_bottom() { function phpftp_login() { /* This function does not return TRUE/FALSE - it returns the value of function phpftp_connect( $phpftp_user, $phpftp_passwd ) { function phpftp_list( $phpftp_user, $phpftp_passwd, $phpftp_dir ) { function phpftp_cd( $phpftp_user, $phpftp_passwd, $phpftp_dir, $select_directory ) { function phpftp_mkdir( $phpftp_user, $phpftp_passwd, $phpftp_dir, $new_dir ) {
function phpftp_put( $phpftp_user, $phpftp_passwd, $phpftp_dir, $userfile, $userfile_name ) { switch( $function ) { ?> |
最后还是让我找到了解决的方法,就是通过PHP的程序执行函数来实现这个功能,因为现在能解ZIP文件的东西实在是太多啦(你要是不信,可以到有下载软件的地方找找看,保准你不会失望的,我的话不会错呦)。
下面就是该程序的原文件:
#upload.php教程
代码如下 | 复制代码 |
<table border="0" > <form ENCTYPE="multipart/form-data" action="ups教程ave.php" method="post"> <tr> <td>如果是*.ZIP的文件会被自动解压缩 <INPUT NAME="MyFile" TYPE="File" size="50"> </td> </tr> <tr> <td colspan="2" align="center"> <input type="Submit" value=" 上传 " class=iwhite> <input type="reset" value=" 重填 " class=iwhite> </td> </tr> </table> |
</body>
</html>
代码如下 | 复制代码 |
<? //upsave.php //保存上传的文件 $filename="$MyFile_name"; copy($MyFile,"$filename"); unlink($MyFile); //判断是否是ZIP文件 $expand_name=explode(".",$filename); if($expand_name[1] == "zip" or $expand_name[1] == "ZIP") { $str="pkunzip.exe -e $filename "; exec($str); unlink($filename); } ?> |
以上的程序我已经测试过,只要放在服务器上就可以了,但是该目录要有写的权限。还有一个pkunzip.exe的文件也要放在该目录中,该文件已经放在了压缩包中。
相关文章
- 下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
Jupyter Notebook读取csv文件出现的问题及解决
这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06- php获取一个文件夹的mtime的程序了,这个就是时间问题了,对于这个问题我们来看小编整理的几个例子,具体的操作例子如下所示。 php很容易获取到一个文件夹的mtime,可以...2016-11-25
- 有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
- 这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
- 这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了Go语言压缩和解压缩tar.gz文件的方法,实例分析了使用Go语言压缩文件与解压文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-03
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
- 这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
php无刷新利用iframe实现页面无刷新上传文件(1/2)
利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25- 要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
- 又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
- 步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
- 今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
- 这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
- 本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
ant design中upload组件上传大文件,显示进度条进度的实例
这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29- 这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
- 举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07
- 这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25