CodeIgniter 한국사용자포럼 BETA
빠르고, 유연한 PHP Framework!

CI 코드


CI 압축 프로그램      
준이 2 2,024 0 0 2010-12-27 10:31:36
이하 system 폴더를 압축 하는 프로그램 입니다. (php 파일만 수정, 기타 파일 복사)

system 폴더와 같은 폴더에 복사 하셔서 실행 하시면 됩니다.

사용 방법은 다음과 같습니다.

// system 디렉토리, 목표 디렉토리, 압축 사용 여부
ci_min('system', '', true);

첫번째 파라미터는 압축하려는 목표 디렉토리 입니다.
두번째 파라미터에서 값이 비어 있으면 자동으로 backup 폴더를 생성 합니다.
세번째 파라미터에서 true - php_strip_whitespace + zlib 사용, false - php_strip_whitespace만 사용

// 172 files, 32 folders
// 압축 하기 전                      1.10 MB   (1,163,611 bytes)
// php_strip_whitespace    626 KB    (641,967 bytes)
// gzip = true                          339 KB    (347,710 bytes)



<?php
session_start();

$_SESSION['count_d'] = $_SESSION['count_f'] = $_SESSION['filesize'] = 0;

// 172 files, 32 folders
// 압축 하기 전				 1.10 MB	(1,163,611 bytes)
// php_strip_whitespace		626 KB		(641,967 bytes)
// gzip = true				339 KB		(347,710 bytes)
ci_min('system', '', true);

// 파일 수량
if ($_SESSION['count_f'] > 0)
{
	echo 'count_f = ' . $_SESSION['count_f'] . "<br />";
}

// 디렉토리 수량
if ($_SESSION['count_d'] > 0)
{
	echo 'count_d = ' . $_SESSION['count_d'] . "<br />";
}

// 압축 후 용량
if ($_SESSION['filesize'] > 0)
{
	echo 'file_size = ' . $_SESSION['filesize'] . "<br />";
}

$_SESSION['count_d'] = $_SESSION['count_f'] = $_SESSION['filesize'] = 0;

unset($_SESSION);

// system 디렉토리, 목표 디렉토리, 압축 사용 여부
function ci_min($directory = 'system', $backupdir = 'backup', $gzip='false')
{
	if (!is_dir($backupdir))
	{
		@mkdir($backupdir);
	}
	$i = 0;
	$mydir = dir($directory);
	$backupdir = 'backup';
	if (!is_dir($backupdir))
	{
		@mkdir($backupdir);
	}
	if (!file_exists($backupdir . '/' . $directory))
	{
		mkdir($backupdir . '/' . $directory);
		$_SESSION['count_d']++;
	}

	$filesize_s = $filesize_t = 0;
	while ($file = $mydir->read())
	{
		// directory
		if ((is_dir($directory . '/' . $file)) AND ($file != '.') AND ($file != '..'))
		{
			ci_min($directory . '/' . $file, $backupdir, $gzip);
		}
		// file
		else
		{
			if (!file_exists($backupdir.'/'.$directory.'/index.php') && !file_exists($backupdir.'/'.$directory.'/index.html'))
			{
				file_put_contents($backupdir.'/'.$directory.'/index.html', '');
				echo "Creating " . $backupdir.'/'.$directory.'/index.html' . "<br />";
				$_SESSION['count_f']++;
			}

			// php file
			if (substr($file, -4) == '.php')
			{
				if ($gzip == true)
				{
					file_put_contents($backupdir . '/' . $directory . '/' . $file, "<?php eval(gzuncompress(base64_decode('".base64_encode(gzcompress(trim(substr(php_strip_whitespace($directory . '/' . $file), 5)), 9))."')));");
				}
				else
				{
					file_put_contents($backupdir . '/' . $directory . '/' . $file, trim(php_strip_whitespace($directory . '/' . $file)));
				}
				$_SESSION['filesize'] += filesize($backupdir . '/' . $directory . '/' . $file);
				$_SESSION['count_f']++;
				echo "Compacting " . $directory . '/' . $file . "<br />";
			}
			// index.html
			else if ($file == 'index.html' || $file == '.' || $file == '..')
			{
			}
			else
			{
				copy($directory . '/' . $file, $backupdir . '/' . $directory . '/' . $file);
				echo "Copying " . $directory . '/' . $file . "<br />";
				$_SESSION['filesize'] += filesize($backupdir . '/' . $directory . '/' . $file);
				$_SESSION['count_f']++;
			}
			if (file_exists($backupdir.'/'.$directory.'/index.php') && file_exists($backupdir.'/'.$directory.'/index.html'))
			{
				unlink($backupdir.'/'.$directory.'/index.html');
				$_SESSION['count_f']--;
			}
		}
	}
	$mydir->close();
}

?>

  목록  

웅파 2010-12-27 17:37:43
  
유용한 프로그램 감사합니다.
무명의시인 2010-12-29 08:29:16
  
좋은 프로그램 감사합니다 ㅎㅎ

번호 제   목 글쓴이 날짜 조회 추천수
591 TapBBS 공개합니다~ [7] KangMin 2012-04-19 670 0
586 CI에서 sqlite3 연동하기 [0] 불의회상 2012-04-04 299 0
580 CodeIgniter SimpleXML library [2] 타로 2012-02-05 797 0
577 CI 와 Smarty 템플릿의 결합 [4] 불의회상 2012-01-26 899 0
573 Okada Design Blog 소개 [3] 타로 2012-01-12 884 0
568 woctopus 계정관리도구 [2] milosz 2012-01-09 764 0
566 업로드된 이미지 정사각형으로 썸네일 만드는 함수 [3] 불의회상 2012-01-06 781 0
554 코드 이그나이터를 접하고 처음으로 만들어본 객체 입.. [7] 내일은 2011-11-11 2043 0
528 모델코드 생성기 [25] 불의회상 2011-10-13 1706 1
525 ci memo + tank_auth [2] milosz 2011-10-04 1467 0
512 포럼소스를 2.0.1 버전에 맞게 수정하였습니다. [2] 탱크 2011-04-02 4093 2
509 CI 메뉴얼 CHM 버전(영문 2.0) [1] 브라이언 2011-03-30 1523 0
508 CI 메뉴얼 CHM 버전 [0] 브라이언 2011-03-30 1737 0
494 ci memo [8] pam 2011-02-20 2286 1
489 CI 압축 프로그램 [2] 준이 2010-12-27 2024 0
482 듬직이님의 헬퍼 ip 부분 추가. [0] 나이유미 2010-11-22 2421 0
475 SELECT() 사용 시 문제점 [2] 마냐 2010-09-16 3251 0
473 CI의 사용자 인증 소스파일 [2] corean 2010-09-12 3850 0
471 CI 1.7.2 한글 언어팩 1.1 [1] cleansugar 2010-08-26 2489 0
470 Upload 라이브러리 수정본 [0] sisco 2010-07-28 2707 0