기간 지난 temp 폴더안에 파일 삭제 하기

지정한 폴더안 파일들 중에 지정한 날짜 이전의 자료들은 모두 삭제 하도록 하는 함수이다. 파일이 생성된 날짜를 비교하여 삭제하기 때문에 temp 폴더 등에서 임시적으로 사용되고나서 특정기간이 지난이후에 삭제 하도록 하기 위하여 사용하면 좋다. function DeleteOldTempFiles($tempfile_path, $time) { if(is_dir($tempfile_path)) { if($dh = opendir($tempfile_path)) { while(($file = readdir($dh)) !== false) { if($file != “.” && $file != “..”) { $dest_path = “{$tempfile_path}/{$file}”; if(is_dir($dest_path)) { DeleteOldTempFiles($dest_path, $time); } else { $fat = filemtime($dest_path); if($fat < $time) { @unlink($dest_path); } } } } closedir($dh); } } } /* 경로 및 시간값을 넘겨주며, 시간은 타임스템프 이다. DeleteOldTempFiles($tempfile_path, strtotime(“- 1 days”)); */ Related posts: 매주의 시작일을 일요일로 Continue reading 기간 지난 temp 폴더안에 파일 삭제 하기

html selectbox 배열에 담긴 값으로 옵션 태그 만들기

html selectbox의 options 들을 추가 할때 하나하나 입력하면 귀찮고 반복해서 사용하는 것들은 매번 만들기 귀찮기 때문에 함수를 하나 만들어서 처리 한다. 배열에 값과 텍스트를 미리 입력해놓은 상태에서 해당 배열을 호출 하면 자동으로 <option>태그로 둘러쌓은 값을 리턴한다. 두번째 인자에 선택된 값을 입력하면 해당 <option>에 자동으로 selected=’selected’를 추가 한다. 마지막 인자는 option에 value 값을 배열의 키값으로 사용할 것인지 값으로 할지를 결정한다. 기본적으로 키를 option value에 삽입한다. 소스코드 // selectbox 옵션값 가져오기 function getSelectboxOptions($arr, $selected, $is_key=1) { $str = “”; foreach($arr AS $key => $val) { $option_value = ($is_key) ? $key : $val; $option_text = $val; $seled = ($option_value == $selected) ? ” Continue reading html selectbox 배열에 담긴 값으로 옵션 태그 만들기

배열에 담긴 모든 값을 urlencode 또는 urldecode 하기

웹사이트 작업을 하다보면 배열에 값을 담아 넘겨줄때가 있다. 한글 데이터도 보내고 url 등도 보내기도 하며 javascript 에서 사용하기 위하여 json 등으로 보내기도 한다. 이럴때 한글이나 url 등과 같은 특수 문자가 들어가는 데이터는 종종 오류를 내거나 한글의 경우는 한글이 깨져서 출력되는 경우가 있다. 그럴경우 urlencode 로 인코딩을 해서 데이터를 보내면 에러 없이 전송이 가능하다. 아래 함수는 배열로 담아둔 모든 값을 rawurlencode로 한번에 인코딩 시키는 것과 반대로 배열에 담아둔 모든 값을 rawurldecode 시키는 함수 이다. 배열에 담겨있지 않는 일반 문자열로 사용이 가능하고 1차 배열만이 아니라 다중배열도 하위 상관 없이 모두 변환 시켜준다. 참고페이지 : http://blog.munilive.com/ex/php/urlencode.php // 인코딩 function str_urlencode($data) { if(is_array($data)) { foreach($data Continue reading 배열에 담긴 모든 값을 urlencode 또는 urldecode 하기

그누보드 no cache header 설정 오류 수정하기

그누보드 head.sub.php 파일에 기본적으로 해더를 통하여 캐쉬를 적용하지 않도록 하는 소스가 삽입되어 있습니다. 하지만 해당 기능이 정상적으로 작동하지 않아서 브라우저의 백버튼이나 키보드의 백스페이스 버튼을 누르게 되면 기존에 보여졌던 페이지(캐싱된 페이지)가 다시 보이게 됩니다. 이를 해결 하기 위해서는 기존 소스 header(“Cache-Control: no-store, no-cache, must-revalidate”); // HTTP/1.1 header(“Cache-Control: pre-check=0, post-check=0, max-age=0”); // HTTP/1.1 이부분을 아래와 같이 변경 하시면 됩니다. header(“Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0”); // HTTP/1.1 단순이 해더정보에서 cache-control 정보를 2개로 나누었던것을 하나로 합친것 뿐입니다. 참고로 위와 같이 변경하면 익스플러로, 파이어폭스, 크롬 모두 노캐싱적용이 됩니다.(다른 브라우저는 확인을 해보지 못하였습니다.) Related posts: php, css, js 파일 압축해서 보내기 (htaccess 이용) 웹사이트의 Continue reading 그누보드 no cache header 설정 오류 수정하기

PHP 스크립트 실행시간 체크 하기

페이지 로딩이 너무 느려서 어느 부분에서 느려지는지 체크 하기 위하여 실행시간 체크를 해야 할때가 있다. 그누보드에 있는 함수를 이용해서 간단하게 체크 하도록 한다. 아래 코드를 스크립트 최상단에 입력 <?php // 마이크로 타임을 얻어 계산 형식으로 만듦 function get_microtime() { list($usec, $sec) = explode(” “,microtime()); return ((float)$usec + (float)$sec); } $script_starttime = get_microtime(); ?> 아래 코드를 체크하고 싶은 지점 한단에 삽입하여 어느 부분에서 시간이 오래 걸리는지 확인. <?php $script_runtime = get_microtime() – $script_starttime; echo $script_runtime.”<br />”; ?>   보통 사이트 로딩이 느려지는 경우는 잘못된 쿼리로 인하여 늦어 지는 경우가 대부분이니 실행시간을 체크 해서 수정해주는 것이 좋다. 쿼리를 체크 할때는 explain 명령어로 Continue reading PHP 스크립트 실행시간 체크 하기