[킴스큐 Rb]킴스큐Rb 개발자를 위한 기초 활용노트 - 미리 정의된 함수
URL: http://www.kimsq.com/?m=forum&bid=devGuide&p=3&uid=17
내용:
킴스큐Rb는 주로 사용되는 함수들을 목적별로 구분하여 _core/function/ 폴더안에 함수파일로 내장하고 있습니다.
이 중 sys.func.php 는 기본함수 파일로서 모든 곳에서 별도의 정의없이 사용할 수 있으며 나머지 파일들은 목적에 따라 인클루드 후 사용할 수 있습니다.
기본함수 묶음 (sys.func.php)
이 함수들은 항상 자동으로 정의되므로 모든 곳에서 사용할 수 있습니다.
매우 자주 사용되는 함수들이므로 숙지할 것을 권합니다.
// 현재의 타임값을 얻습니다.
string getNowTimes()
// 페이지를 이동시킵니다.
void getLink($url,$target,$alert,$history)
string $url : 주어진 링크로 이동
string $target : $url이 있을 경우 주어진 타겟에 적용
string $alert : 알러트창에 $alert 메세지를 띄움
string/int $history : 값이 있을 경우 history.go($history); 를 실행
// 새창을 열면서 페이지를 이동시킵니다.
void getWindow($url,$alert,$option,$backurl,$target)
string $url : 주어진 링크의 창을 띄움
string $alert : 알러트창에 $alert 메세지를 띄움
string $option : 창의 옵션
string $backurl : 창을 띄울때 이동시킬 주소
string $target : $backurl이 있을 경우 주어진 타겟에 적용
// 검색을 위한 SQL코드를 얻습니다.
string getSearchSql($w,$k,$ik,$h)
string $w : 검색할 필드(복수일 경우 | 으로 구분)s
string $k : 검색어
string $ik : 검색결과내 검색어
string $h : 검색방식(or , and , not)
// 페이징영역을 출력합니다.
void getPageLink($lnum,$p,$tpage,$img)
int $lnum : 넘버출력수
int $p : 현재페이지
int $tpage : 총페이지수
string $img : 이미지경로
// 문자열을 지정된 글자수에서 끊습니다.
string getStrCut($long_str,$cutting_len,$cutting_str)
string $long_str : 끊을 문자열
int $cutting_len : 끊을글자수
string $cutting_str : 끊겼을 경우 마지막에 붙힐 문자열
// 파라미터값으로 링크주소를 얻습니다.
string getLinkFilter($default,$arr)
string $default : 기본링크
array $arr : 링크에 추가할 파라미터
// 총페이지 수를 얻습니다.
int getTotalPage($num,$rec)
int $num : 총갯수
int $rec : 한페이지에 출력시킬 갯수
// 날짜값으로 날짜포맷을 얻습니다.
string getDateFormat($d,$f)
string $d : 날짜코드(YYYYMMDDHHIISS)
string $f : date 포맷
// 지정된 날짜값에 특정시간을 가감한 날짜포맷을 얻습니다.
string getDateCal($f,$d,$h)
string $f : date 포맷
string $d : 날짜코드(YYYYMMDDHHIISS)
int $h : 조정시간
// $date 배열을 구합니다.
string getVDate($t)
int $t : 조정시간
// 지정된 날짜까지 남은날짜를 얻습니다.
int getRemainDate($d)
string $d : 날짜코드(YYYYMMDDHHIISS)
// 지난시간을 얻습니다.
array getOverTime($d1,$d2)
string $d1 : 현재시간
string $d2 : 비교시간
// 요일을 얻습니다.
string getWeekday($n)
int $h : 요일값
// 지정된 범위내에 포함되는 시간인지 구합니다.
boolean getNew($time,$term)
string $time : 비교시간(YYYYMMDDHHIISS)
int $term : 비교기간(H단위)
// 백분율을 구합니다.
float getPercent($a,$b,$flag)
int $a : 대상수량
int $b : 총수량
int $flag : 소수점이하 갯수
// 문자열을 필터링하여 숫자로 만듭니다.
int filterstr($str)
string $str : 문자열
// 문자열을 지정된 문자로 복사합니다.
string strCopy($str1,$str2)
string $str1 : 대상문자열
string $str2 : 복사할문자
// 출력내용을 필터링합니다.
string getContents($str,$html)
string $str : 문자열
sting $html : HTML/TEXT 구분
// 쿠키에 기록된 지정배열의 인자를 얻습니다.
string getArra$ck,$split,$n)
string $ck : 쿠키데이터
string $split : 구분자
int $n : 반환할 배열순번
// 대괄호형 코드를 배열로 얻습니다.
array getArrayString($str)
string $str : 문자열 [n1][n2]...[nn] 형식
// 성별을 얻습니다.
string getSex($flag)
int $flag : 구분키 (1=남,2=여)
// 생일을 나이로 얻습니다.
int getAge($birth)
int $birth : 생년월일
//나이를 출생년도로 얻습니다.
int getAgeToYear($age)
int $age : 나이
// 사이즈를 GB/MB/KB/B 로 구합니다.
float getSizeFormat($size,$flag)
int $site : 바이트값
int $flag : 소수점 이하단위
// 파일의 확장자로 파일의 형식을 얻습니다.
int getFileType($ext)
string $ext : 확장자
// 파일명에서 확장자를 얻습니다.
string getExt($name)
string $name : 파일명
// 문자열에서 이미지를 추출합니다.
array getImgs($code,$type)
string $code : 문자열
string $type : 확장자 (복수일 경우 | 으로 구분)
// 썸네일 이미지를 찾습니다.
string getThumbImg($img)
string $img : 이미지주소
// 내용물에 삽입된 이미지를 찾습니다.
string getUploadImage($upfiles,$d,$content,$ext)
string $upfiles : 내용에 삽입된 첨부파일코드
string $d : 첨부날짜
string $content : 내용물
string $ext : 내용물에서 임의로 추려낼 확장자 (복수일 경우 | 으로 구분)
// 주소에서 도메인을 얻습니다.
string getDomain($url)
string $url : url
// 주소에서 키워드를 얻습니다.
string getKeyword($url)
string $url : 검색어를 추출할 url
// 주소에서 검색엔진을 얻습니다.
string getSearchEngine($url)
string $url : url
//에이젼트로 브라우져를 얻습니다.
string getBrowzer($agent)
string $agent : 에이젼트
// 파일명으로 소속폴더명을 얻습니다.
string getFolderName($file)
string $file : 파일경로
// euc-kr -> utf-8
function getKRtoUTF($str)
string $str : 대상문자열
// utf-8 -> euc-kr
function getUTFtoKR($str)
string $str : 대상문자열
// utf-8 -> utf-8
function getUTFtoUTF($str)
string $str : 대상문자열
// 관리자 여부를 체크합니다.
void checkAdmin($n)
string $n : 관리자가 아닐 경우 이동시킬 history 값
// 모바일접속 여부를 체크하고 모바일os종류를 얻습니다.
string isMobileConnect($agent)
string $agent : 에이젼트
// 주소를 rewrite 적용여부에 따라 처리합니다.
string RW($rewrite)
string $rewrite : rewrite 적용전 코드
// 동기화코드를 주소로 변환합니다.
string getCyncUrl($cync)
string $cync : 동기화코드
// 게시물데이터를 게시물주소로 변환합니다.
string getPostLink($arr)
array $arr : 게시물데이터 배열
// 위젯을 출력합니다.
void getWidget($widget,$wdgvar)
string $widget : 위젯코드
array $widgvar : 위젯변수
기타 함수들
이 함수들은 각각 정의된 함수파일을 미리 인클루드해 주어야 사용할 수 있습니다.
다음과 같이 인클루드를 해준 후 사용하세요.
include_once $g['path_core'].'function/목적별.func.php';
// 디렉토리를 복사합니다.(dir.func.php)
vod DirCopy($dir1 , $dir2)
string $dir1 : 복사할 디렉토리경로
string $dir2 : 복사될 디렉토리경로
// 디렉토리를 삭제합니다.(dir.func.php)
vod DirDelete($t_dir)
string $t_dir : 삭제할 디렉토리경로
// 디렉토리내의 파일사이즈와 파일갯수를 얻습니다.(dir.func.php)
array DirSizeNum($t_dir)
string $t_dir : 디렉토리경로
// 퍼미션을 변경합니다.(dir.func.php)
void DirChmod($t_dir,$mode)
string $t_dir : 디렉토리경로
int $mod : 퍼미션
// 디렉토리를 압축합니다.(dir.func.php)
void DirZip($t_dir,$n_dir,$zipfile)
string $d_dir : 압축할 디렉토리경로
string $n_dir : 현재 디렉토리경로
object $zipfile : 압축객체
이 함수를 사용하려면 반드시 다음의 코드가 미리 선언되어야 합니다.
require $g['path_core'].'function/zip.class.php';
$zipfile = new zipfile();
// 디렉토리를 생성합니다.(dir.func.php)
function DirMake($dir)
string $dir : 생성할 디렉토리경로
// 이메일을 전송합니다.(email.func.php)
boolean getSendMail($to,$from,$subject,$content,$html)
string $to : 받는사람
string $from : 보내는사람
string $subject : 제목
string $content : 내용
string $html : 내용의 HTML여부(HTML/TEXT)
// 문자열에 포함된 주소에 링크를 겁니다.(autolink.func.php)
string getAutoLink($str)
string $str : 문자열
// tree.js에서 사용가능한 트리메뉴용 코드를 생성합니다.(menu.func.php)
void getMenuShow($site,$table,$j,$parent,$depth,$uid,$CXA,$hidden)
int $site : 사이트 UID
string $table : 메뉴 테이블명
static int $j : 재귀호출 구분코드
int $parent : 부모메뉴 UID
int $depth : 메뉴깊이
int $uid : 현재메뉴 UID
array $CXA : 메뉴경로의 배열값
string $code : 메뉴코드
// 메뉴코드를 로케이션 경로로 변환합니다.(menu.func.php)
array getMenuCodeToPath($table,$cat,$j)
string $table : 메뉴 테이블명
int $cat : 선택메뉴 UID
static int $j : 재귀호출 구분코드
// 메뉴코드를 검색용 SQL로 변환합니다.(menu.func.php)
string getMenuCodeToSql($table,$cat,$f)
string $table : 메뉴 테이블명
int $cat : 선택메뉴 UID
string $f : 지정필드
// 카테고리를 콤보박스 형식으로 출력합니다.(menu1.func.php)
void getMenuShowSelect($site,$table,$j,$parent,$depth,$uid,$hidden,$id)
int $site : 사이트 UID
string $table : 메뉴 테이블명
static int $j : 재귀호출 구분코드
int $parent : 부모메뉴 UID
int $depth : 메뉴깊이
int $uid : 현재메뉴 UID
int $hidden : 숨김메뉴 출력여부
string $id : 메뉴코드
// 메뉴데이터를 XML파일로 출력/저장합니다.(menu.dump.func.php)
void getMenuXml($site,$table,$j,$parent,$depth,$uid,$code)
int $site : 사이트 UID
string $table : 메뉴 테이블명
static int $j : 재귀호출 구분코드
int $parent : 부모메뉴 UID
int $depth : 메뉴깊이
int $uid : 현재메뉴 UID
string $code : 메뉴코드
// 메뉴데이터를 엑셀파일로 저장합니다.(menu.dump.func.php)
void getMenuXls($site,$table,$j,$parent,$depth,$uid,$mset,$code)
int $site : 사이트 UID
string $table : 메뉴 테이블명
static int $j : 재귀호출 구분코드
int $parent : 부모메뉴 UID
int $depth : 메뉴깊이
int $uid : 현재메뉴 UID
array $mset : 메뉴형식
string $code : 메뉴코드
// 메뉴데이터를 텍스트파일로 저장합니다.(menu.dump.func.php)
void getMenuTxt($site,$table,$j,$parent,$depth,$uid,$code)
int $site : 사이트 UID
string $table : 메뉴 테이블명
static int $j : 재귀호출 구분코드
int $parent : 부모메뉴 UID
int $depth : 메뉴깊이
int $uid : 현재메뉴 UID
string $code : 메뉴코드
// URL에서 XML데이터를 얻습니다.(rss.func.php)
string getUrlData($url,$sec)
string $url : 주소
int $sec : 연결시도 시간(초)
// URL에서 XML데이터를 얻고 지정된 태그로 분리한 배열을 얻습니다.(rss.func.php)
array getRssArray($url,$tag)
string $url : 주소
string $tag : 태그
// 문자열에서 태그에 해당되는 문자열을 얻습니다.(rss.func.php)
string getRssTagValue($str,$tag)
string $str : 문자열
string $tag : 태그
// 문자열에서 태그에 해당되는 타이틀을 얻습니다.(rss.func.php)
string getRssPageTitle($str,$tag)
string $str : 문자열
string $tag : 태그
// 문자열에서 태그에 해다오디는 내용을 얻습니다.(rss.func.php)
string getRssContent($str,$tag)
string $str : 문자열
string $tag : 태그
// 주소에서 도메인을 얻습니다.(rss.func.php)
string getRssDomain($url)
string $url : 주소
-----------------------------------------------------------------------------------------------------------------------
변수명이나 함수명을 선언할 때 영어 단어의 선택이나 조합이 아쉬운 부분이 있다. 코드를 혼자만 보면 상관이 없겠으나 함께 공유하는 오픈 소스의 경우 최대한 다른 사람들도 변수명/함수명만 보고 뜻을 유추할 수 있는 것이 중요한데 아직 킴스큐는 그런 부분에서는 분명히 아쉬운 점이 있다. 걱정되는 점은 버전 업데이트 할 때 그때 네이밍 룰을 바꿔서 업데이트 하면 기존 버전과 호환성 문제가 발생하지 않을까하는 것이다. DB 테이블명 필드 명도 오타나 일관성이 결여되는 부분이 있는데 빠른 시일내에 보완이 되었으면 좋겠다.