포토샵 공식 웹사이트 PHP 웹사이트 백업 프로그램 코드 공유
Jul 29, 2016 am 08:45 AM렌더링:
PHP 코드
코드 복사 코드는 다음과 같습니다.
<html>
<head>
<meta http-equiv="Content-Type" c method="post" action=""> php
error_reporting(E_ALL & ~E_NOTICE)
ini_set('memory_limit', '2048M')
echo "압축할 파일 또는 디렉터리 선택:
$fdir = opendir('./');
while($file=readdir($fdir))
{
if($file=='.'|| $file=='..')
계속;
echo "<input name='dfile[]' type='checkbox' value='$file' ".($file==basename(__FILE__)?"":"checked") ."> ";
if(is_file($file))
{
echo "<fontface="wingdings" size="5">2</font> $file<br> ;";
}
else
{
echo "<fontface="wingdings" size="5">0</font> $file<br>";
}
}
?>
<br>
다음 파일 형식을 포함합니다:
<input name="file_type" type="text" value="" size=" 50 ">
<font color="red">
(파일 형식은 "|"로 구분됩니다. 기본적으로 파일이 비어 있으면 모든 파일이 포함됩니다. 예: 패키지해야 하는 경우 php 및 jpg 파일인 경우 "php |jpg"를 입력합니다.
</font>
<br>
압축 파일을 다음 디렉토리에 저장합니다.
<input name="todir" 유형 ="text" value="__dwb2011__" size ="15">
<font color="red">
(이 디렉토리는 비워두세요. 쓰기 권한이 있어야 합니다.)
</ 글꼴>
<br>
압축 파일 이름:
<input name="zipname" type="text" value="dwb2011.zip" size="15"> ;font color="red">
(.zip)
<br>
<br><input type='button' value='inverse Selection' |',$filetype)
}
//수정 시간 형식을 반환합니다.
//이 클래스 내부 함수 호출에만 해당
function unix2DosTime($unixtime = 0)
{
$timearray = ($unixtime == 0) : getdate ($unixtime);
if ($timearray ['연도'] < 1980)
{
$timearray['연도'] = 1980
$timearray['mon'] = 1 ;
$timearray['mday'] = 1;
$timearray['시간'] = 0
$timearray['분'] = 0; = 0;
}
return ( ($timearray['연도'] - 1980) << 25) | ($timearray['mon'] << 21) | mday'] << 16) | ($ timearray['시간'] << 11) ($timearray['분'] << 5) | > 1);
}
//파일을 초기화하고, 파일 디렉터리를 생성하고,
//파일의 쓰기 권한을 반환합니다.
function startfile($path = 'dodo.zip ')
{
$this->gzfilename =$path;
$mypathdir=array()
do
{
$mypathdir[] = $path = dirname( $path);
} while($path != ' .');
@end($mypathdir)
do
{
$path = @current($mypathdir);
@mkdir($path);
} while (@prev($mypathdir))
if($this->fp=@fopen($this->gzfilename,"w") )
{
return true;
}
return false
}
//zip 패키지에 파일을 추가합니다.
function addfile($data, $name)
{
$name = str_replace('\ ', '/', $name)
if(strrchr($name,'/')=='/')
return $this ->adddir($name);
if( !empty($this->filefilters))
{
if (!in_array(end(explode(".",$name)), $this->filefilters))
{
return
}
}
$dtime = decex($this->unix2DosTime());
$hexdtime = 'x' . $dtime[6] . $dtime[7] . '엑스' . $dtime[4] . $dtime[5] . '엑스' . $dtime[2] . $dtime[3] . '엑스' . $dtime[0] . $dtime[1];
eval('$hexdtime = "' . $hexdtime . '";');
$unc_len = strlen($data);
$crc = crc32($data);
$zdata = gzcompress($data);
$c_len = strlen($zdata);
$zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2);
//새로운添文件内容格式化:
$datastr = "x50x4bx03x04";
$datastr .= "x14x00"; //
$datastr .= "x00x00";을 추출하는 데 필요한 버전입니다. // 생성 목적 비트 플래그
$datastr .= "x08x00"; // 압축 방법
$datastr .= $hexdtime; // 마지막 수정 시간 및 날짜
$datastr .= pack('V', $crc); // crc32
$datastr .= pack('V', $c_len); // 압축된 파일 크기
$datastr .= pack('V', $unc_len); // 압축되지 않은 파일 크기
$datastr .= pack('v', strlen($name)); // 파일 이름 길이
$datastr .= pack('v', 0); // 추가 필드 길이
$datastr .= $name;
$datastr .= $zdata;
$datastr .= pack('V', $crc); // crc32
$datastr .= pack('V', $c_len); // 압축된 파일 크기
$datastr .= pack('V', $unc_len); // 압축되지 않은 파일 크기
fwrite($this->fp,$datastr); //새로운 내용의 문서
$my_datastr_len = strlen($datastr);
설정 해제($datastr);
//새로운添文件目录信息
$dirstr = "x50x4bx01x02";
$dirstr .= "x00x00"; //
$dirstr이 만든 버전 .= "x14x00"; //
$dirstr .= "x00x00"을 추출하는 데 필요한 버전; // 생성 목적 비트 플래그
$dirstr .= "x08x00"; // 압축 방법
$dirstr .= $hexdtime; // 마지막 수정 시간 및 날짜
$dirstr .= pack('V', $crc); // crc32
$dirstr .= pack('V', $c_len); // 압축된 파일 크기
$dirstr .= pack('V', $unc_len); // 압축되지 않은 파일 크기
$dirstr .= pack('v', strlen($name) ); // 파일 이름 길이
$dirstr .= pack('v', 0 ); // 추가 필드 길이
$dirstr .= pack('v', 0 ); // 파일 주석 길이
$dirstr .= pack('v', 0 ); // 디스크 번호 시작
$dirstr .= pack('v', 0 ); // 내부 파일 속성
$dirstr .= pack('V', 32 ); // 외부 파일 속성 - 'archive' 비트 세트
$dirstr .= pack('V',$this->datastr_len ); // 로컬 헤더의 상대 오프셋
$dirstr .= $name;
$this->dirstr .= $dirstr; //目录信息
$this -> 파일_개수;
$이것 -> dirstr_len = strlen($dirstr);
$이것 -> datastr_len = $my_datastr_len;
}
function adddir($name)
{
$name = str_replace("\", "/", $name);
$datastr = "x50x4bx03x04x0ax00x00x00x00x00x00x00x00x00";
$datastr .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) );
$datastr .= pack("v", 0 ).$name.pack("V", 0).pack("V", 0).pack("V", 0);
fwrite($this->fp,$datastr); //새로운 내용의 문서
$my_datastr_len = strlen($datastr);
설정 해제($datastr);
$dirstr = "x50x4bx01x02x00x00x0ax00x00x00x00x00x00x00x00x00";
$dirstr .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) );
$dirstr .= pack("v", 0 ).pack("v", 0 ).pack("v", 0 ).pack("v", 0 );
$dirstr .= pack("V", 16 ).pack("V",$this->datastr_len).$name;
$this->dirstr .= $dirstr; //目录信息
$this -> 파일_개수;
$이것 -> dirstr_len = strlen($dirstr);
$이것 -> datastr_len = $my_datastr_len;
}
function createfile()
{
//压缩包结束信息,包括文件总数,目录信息读取指针位置等信息
$endstr = "x 50x4bx05x06x00x00x00x00" .
pack('v', $this -> file_count) .
pack('v', $this -> file_count) .
pack('V', $this -> dirstr_len) .
pack('V', $this -> datastr_len) .
"x00x00";
fwrite($this->fp,$this->dirstr.$endstr);
fclose($this->fp);
}
}
if(!trim($_REQUEST[zipname]))
$_REQUEST[zipname] = "dodozip.zip";
그 외
$_REQUEST[zipname] = Trim($_REQUEST[zipname]);
if(!strrchr(strtolower($_REQUEST[zipname]),'.')=='.zip')
$_REQUEST[zipname] .= ".zip";
$_REQUEST[todir] = str_replace('\','/',trim($_REQUEST[todir]));
if(!strrchr(strtolower($_REQUEST[todir]),'/')=='/')
$_REQUEST[todir] .= "/";
if($_REQUEST[todir]=="/")
$_REQUEST[todir] = "./";
함수 목록 파일($dir=".")
{
global $dodozip;
$sub_file_num = 0;
if(is_file("$dir"))
{
if(realpath($dodozip ->gzfilename)!=realpath("$dir"))
{
$dodozip -> addfile(implode('',file("$dir")),"$dir");
1을 반환합니다.
}
0을 반환합니다.
}
$handle=opendir("$dir");
while ($file = readdir($handle))
{
if($file=="."||$file=="..")
계속;
if(is_dir("$dir/$file"))
{
$sub_file_num = listfiles("$dir/$file");
}
else
{
if(realpath($dodozip ->gzfilename)!=realpath("$dir/$file"))
{
$dodozip -> ; addfile(implode('',file("$dir/$file")),"$dir/$file");
$sub_file_num ;
}
}
}
closedir($handle);
if(!$sub_file_num)
$dodozip -> addfile("","$dir/");
$sub_file_num 반환;
}
함수 num_bitunit($num)
{
$bitunit=array(' B',' KB',' MB',' GB');
for($key=0;$key<count($bitunit);$key )
{
if($num>=pow(2,10*$key)-1)
{ //1023B 1KB
$num_bitunit_str=(ceil($num/pow(2,10*$key)*100)/100)." $bitunit[$key]";
}
}
$num_bitunit_str 반환;
}
if(is_array($_REQUEST[dfile]))
{
$dodozip = new PHPzip;
if($_REQUEST["file_type"] != NULL)
$dodozip -> SetFileFilter($_REQUEST["file_type"]);
if($dodozip -> startfile("$_REQUEST[todir]$_REQUEST[zipname]"))
{
echo "정재添加压缩文件...<br><br> ";
$filenum = 0;
foreach($_REQUEST[dfile] as $file)
{
if(is_file($file))
{
if(!empty($dodozip -> filefilters))
if (!in_array(end(explode(".",$file)), $dodozip -> filefilters))
계속;
echo "<fontface="wingdings" size="5">2</font> $file<br>";
}
else
{
echo "<fontface="wingdings" size="5">0</font> $file<br>";
}
$filenum = 목록파일($file);
}
$dodozip -> 파일 생성();
echo "<br>压缩完成,共添加 $filenum 个文件.<br><a href='$_REQUEST[todir]$_REQUEST[zipname]' _fcksavedurl='$_REQUEST[todir]$_REQUEST [zipname]'>$_REQUEST[todir]$_REQUEST[zipname] (".num_bitunit(filesize("$_REQUEST[todir]$_REQUEST[zipname]")).")</a>";
}
else
{
echo "$_REQUEST[todir]$_REQUEST[zipname] 不能写入,请检查路径或权限是否正确.<br>";
}
}
?>
</form>
</body>
</html>
以上就介绍了photoshop官方网站 PHP网站备份程序代码分享,包括了photoshop官方网站方了内容,希望对PHP教程有兴趣的朋友有所帮助。

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Laravel Back End : Part 2, React가있는 React 앱 구축

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법
