php专区

 首页 > php专区 > PHP高级 > 文件上传 > php在线文件与文件夹压缩实例代码 - php文件操作

php在线文件与文件夹压缩实例代码 - php文件操作

分享到:
【字体:
导读:
          注明这款php文件压缩代码他要借助于zip.exe文件,所以我们要把zip.exe压缩文件给拿出来,实例代码如下:?phpif(!IsSet($_GET[#39;dirname#39;])){show_input_form();}else{//checkifemptyif(emptye......

php在线文件与文件夹压缩实例代码

注明这款php文件压缩代码他要借助于zip.exe文件,所以我们要把zip.exe压缩文件给拿出来,实例代码如下:

  1.  
  2. if ( !IsSet($_GET['dirname']) ) 
  3.  show_input_form() ; 
  4. else 
  5.  // check if empty 
  6.  if ( emptyempty($_GET['dirname']) ) 
  7.  { 
  8.   hg_exit("请输入文件夹名!") ; 
  9.  } 
  10.  
  11.  // check valid dirname 
  12.  if ( FALSE !== strpos($_GET['dirname'], "/") ) 
  13.  { 
  14.   hg_exit(""/" 是非法的文件夹名!") ; 
  15.  } 
  16.  if ( FALSE !== strstr($_GET['dirname'], "..") ) 
  17.  { 
  18.   hg_exit("".." 是非法的文件夹名!") ; 
  19.  } 
  20.  
  21.  // check valid dir 
  22.  if ( !is_dir($_GET['dirname']) ) 
  23.  { 
  24.   hg_exit(""{$_GET['dirname']}" 不是一个有效的文件夹!") ; 
  25.  } 
  26.  
  27.  $szData = "" ; 
  28.  $szInfo = "" ; 
  29.  
  30.  $file_count = @ZipDir($_GET['dirname'], &$szData, &$szInfo) ; 
  31.  $info_size_16byte = @sprintf("%016d", @strlen($szInfo)) ; 
  32.  $szData = @sprintf("%016d",$file_count) . $info_size_16byte . $szInfo . $szData ; 
  33.  $filename = $_GET['dirname'] . ".dat" ; 
  34.  if ( function_exists(gzencode) ) 
  35.  { 
  36.   $szData = gzencode($szData) ; 
  37.   $filename .= ".gz" ; 
  38.  } 
  39.  
  40.  Header("Content-type: application/octet-stream"); 
  41.  Header("Accept-Ranges: bytes"); 
  42.  Header("Accept-Length: " . strlen($szData)); 
  43.  Header("Content-Disposition: attachment; filename=$filename"); 
  44.  
  45.  echo $szData ; 
  46.  
  47.  
  48. function show_input_form() 
  49.  echo HtmlHead("文件打包") ; 
  50.  echo "input">n" 
  51.   . "请输入要打包的文件夹,注意,仅当前目录下的文件夹才可以下载!

    n" 

  52.   . "dirname">n" 
  53.   . "button" value="确定" onClick="show_download_link(dirname.value);">n" 
  54.   . "n" ; 
  55.  echo "n" ; 
  56.  echo HtmlFoot() ; 
  57.  
  58.  
  59. function ZipDir($szDirName, &$szData, &$szInfo
  60.  // write dir header 
  61.  $szInfo .= "$szDirName|[dir]n" ; 
  62.  $file_count = 0 ; 
  63.  $hDir = OpenDir($szDirName) ; 
  64.  while ( $file = ReadDir($hDir) ) 
  65.  { 
  66.   if ( $file=="." || $file==".." ) continue ; 
  67.  
  68.   $szCurFile = "$szDirName/$file" ; 
  69.  
  70.   if ( Is_Dir($szCurFile) ) 
  71.   { 
  72.    $file_count += ZipDir($szCurFile, &$szData, &$szInfo) ; 
  73.   } 
  74.   else if ( Is_File($szCurFile) ) 
  75.   { 
  76.    $hCurFile = fopen($szCurFile"rb") ; 
  77.    $size = filesize($szCurFile) ; 
  78.    $szStream = fread$hCurFile$size ) ; 
  79.    fclose($hCurFile) ; 
  80.    $file_count++ ; 
  81.  
  82.    // write info 
  83.    $szInfo .= "$szCurFile|$sizen" ; 
  84.  
  85.    // write data 
  86.    $szData .= $szStream ; 
  87.   } 
  88.  } 
  89.  
  90.  // write dir footer 
  91.  $szInfo .= "$szDirName|[/dir]n" ; 
  92.  return $file_count ; 
  93.  
  94.  
  95. function hg_exit($str
  96.  echo HtmlHead("Error, exit!") ; 
  97.  echo "
    " . $str . "
    "
     ; 
  98.  echo HtmlFoot() ; 
  99.  exit ; 
  100.  
  101.  
  102. function HtmlHead($title
  103.  return "nnn" 
  104.   . "Content-Type" content="text/html; charset=gb2312">n" 
  105.   . "text/css教程">n" 
  106.   . "body,input,td{font:12px verdana}n" 
  107.   . "n" 
  108.   . "nnnn" ; 
  109.  
  110.  
  111. function HtmlFoot() 
  112.  return Copyright() . "nnn" ; 
  113.  
  114.  
  115. function Copyright() 
  116.  return "
    5" face="楷体_GB2312" color="red">使用完请立即删除本文件,以避免被其它人发现使用!
    n"
     
  117.   . "
    #003388">n" 
  118.   . "
    n" 
  119.   . "font-family:verdana; font-size:12px">Contact us: n" 
  120.   . "http://www.phpfensi.com/" target="_blank">http://www.phpfensi.com/

    n"
     
  121.   . "n" 
  122.   . "n" 
  123.   . "n" 
  124.   . "" ; 
  125.  
  126. ?>
分享到:
php在文件指定行插入数据实例 - php文件...
php在文件指定行插入数据实例 对于php文件操作那么关于在指定的位置插入数据就比较复杂了,下面我们就来看看关系在文件指定行插入数据实例吧,实例代码如下: $arrInsert = insertContent("array.php", "abcdef", 3, 10);  unlink("array.php");  foreach($arrInsert as $valu...
php递归删除目录,文件夹 - php文件操作
php递归删除目录,文件夹 php 递归删除目录(文件夹)下面举了两个实例,一个是删除单独的空目录代码,一个是批量删除目录文件夹的代码. 删除单个空文件夹,代码如下: $dir = 'www.phpfensi.com';  if( is_dir( $dir ) ) //判断是否为目录  {   if( rmdir( $d...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……