전역 헬퍼(Helpers)

전역 헬퍼는 프레임워크 로딩후 사용 가능한 함수 모음입니다.

사용 가능 함수 (Core)

사용 가능한 함수는 다음과 같습니다.

encrypt_user_password(string $pw)
매개 변수:
  • $pw (string) – 암호화할 문자열
반환:

hash된 문자열

반환 형식:

string

비밀번호의 hash된 문자열을 만듭니다.

$password = encrypt_user_password('test');

/* $password
    "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
*/
form_validation(array $formFieldList[, array $data])
매개 변수:
  • $formFieldList (array) – 검사할 form 컬럼명 배열
  • $data (array) – 검사 대상 배열(옵션)
반환:

검사 성공 true / 검사 실패 false

반환 형식:

bool

폼 검증 검사를 실행합니다.

$chkField = ['user_id', 'pw'];

if (form_validation($chkField)) {
    echo "validate ok!";
} else {
    echo validation_errors();
}

옵션으로 두 번째 파라메터에 검사 대상을 배열로 전달할 수 있습니다.

$chkField = ['user_id', 'pw'];
$get = $this->input->get();

if (form_validation($chkField, $get)) {
    echo "validate ok!";
} else {
    echo validation_errors();
}
form_file_upload($fildName, $uploadPath[, $fileName][, $maxSize][, $allowedTypes])
매개 변수:
  • $fildName (string) – upload Form field명
  • $uploadPath (string) – upload된 파일을 저장할 경로
  • $fileName (string) – upload된 파일 저장시 사용할 파일명
  • $maxSize (int) – upload 최대 사이즈, 기본 값 5MB
  • $allowedTypes (string) – upload 가능 파일 타일, 기본 값 〈*〉
반환:

업로드 결과 배열

반환 형식:

array

파일 업로드를 실행합니다.

/*
    <?=form_open_multipart('upload/do_upload')?>
        <input type="file" name="userfile" size="20" />
        <br /><br />
        <input type="submit" value="upload" />
    </form>
*/

$result = form_file_upload('userfile', 'data/upload');

/* 성공
    Array
    (
        [file_name] => 1x1.png
        [file_type] => image/png
        [file_path] => D:/version-fix-project/relaket/php-relaket-sns-together/front/www/data/enterdev_data/test/upload/
        [full_path] => D:/version-fix-project/relaket/php-relaket-sns-together/front/www/data/enterdev_data/test/upload/1x1.png
        [raw_name] => 1x1
        [orig_name] => 1x1.png
        [client_name] => 1x1.png
        [file_ext] => .png
        [file_size] => 0.09
        [is_image] => 1
        [image_width] => 1
        [image_height] => 1
        [image_type] => png
        [image_size_str] => width="1" height="1"
    )
*/

/* 실패
    Array
    (
        [error] => <p>You did not select a file to upload.</p>
    )
*/

저장시 파일명을 바꾸고 싶다면 3번째 파라메터에 파일명을 전달하십시오.

$fileName = md5(time());
$result = form_file_upload('userfile', 'data/upload', $fileName);

/* 성공
    Array
    (
        [file_name] => d9809192004fc1d4cdbacd2aeb83384d.png
        [file_type] => image/png
        [file_path] => D:/version-fix-project/relaket/php-relaket-sns-together/front/www/data/enterdev_data/test/upload/
        [full_path] => D:/version-fix-project/relaket/php-relaket-sns-together/front/www/data/enterdev_data/test/upload/d9809192004fc1d4cdbacd2aeb83384d.png
        [raw_name] => d9809192004fc1d4cdbacd2aeb83384d
        [orig_name] => d9809192004fc1d4cdbacd2aeb83384d.png
        [client_name] => 1x1.png
        [file_ext] => .png
        [file_size] => 0.09
        [is_image] => 1
        [image_width] => 1
        [image_height] => 1
        [image_type] => png
        [image_size_str] => width="1" height="1"
    )
*/

파일명 변경시 확장자도 변경할 수 있습니다.

$fileName = md5(time()) .'.gif';
$result = form_file_upload('userfile', 'data/upload', $fileName);

/* 성공
    Array
    (
        [file_name] => 84909821e83337b5dbb8c6c683f41b2b.gif
        [file_type] => image/png
        [file_path] => D:/version-fix-project/relaket/php-relaket-sns-together/front/www/data/enterdev_data/test/upload/
        [full_path] => D:/version-fix-project/relaket/php-relaket-sns-together/front/www/data/enterdev_data/test/upload/84909821e83337b5dbb8c6c683f41b2b.gif
        [raw_name] => 84909821e83337b5dbb8c6c683f41b2b
        [orig_name] => 84909821e83337b5dbb8c6c683f41b2b.gif
        [client_name] => 1x1.png
        [file_ext] => .gif
        [file_size] => 0.09
        [is_image] => 1
        [image_width] => 1
        [image_height] => 1
        [image_type] => png
        [image_size_str] => width="1" height="1"
    )
*/
getAppType()
반환:아이폰 앱 : 〈iOS〉 / 안드로이드 앱 : 〈Android〉 / 앱이 아니면 : false
반환 형식:both

앱을 통하여 접근했는지 확인합니다.

$agent = getAppType();

/*
    아이폰 앱 : iOS
    안드로이드 앱 : Android
    앱이 아니면 : false
*/
show_400()
반환:400 오류 메시지
반환 형식:string

클라이언트에 오류 코드(400)와 〈Bed request!〉 메시지를 전달합니다.

show_400()
make_member_code()
반환:회원 코드
반환 형식:string

회원 코드를 생성합니다.

make_member_code()

// a896361b57ad0c4c5de48becd8ebd543
make_company_id()
반환:업체 코드
반환 형식:string

업체 코드를 생성합니다.

make_company_id()

// 9aaae8a237e289f680b0541f5ecc0e14
is_windows()
반환:windows면 true / 아니면 false
반환 형식:bool

운영체제가 Winodws인지 확인합니다.

is_windows()

// 윈도우즈면 true
f_decimal($value[, $scale][, $mode])
매개 변수:
  • $value (float) – 변환할 값
  • $scale (int) – 유효한 소수점 자리수, 기본 값은 0
  • $mode (string) – round, floor, ceil, none 중 하나
반환:

DecimalDecimal object

반환 형식:

DecimalDecimal

$value를 DecimalDecimal 객체로 변환합니다.

$doller = f_decimal(123.456);

/* $doller
    Decimal\Decimal Object
    (
        [value] => 123
        [precision] => 28
    )
*/

두 번째 파라메터로 유지할 소수점 크기를 전달할 수 있습니다. $scale 이후 값은 버려집니다.

$doller = f_decimal(123.456, 2);

/* $doller
    Decimal\Decimal Object
    (
        [value] => 123.45
        [precision] => 28
    )
*/

세 번째 파라메터로 $scale 이후 값 처리 방법을 바꿀수 있습니다. floor : 버림, ceil : 올림, round : 반올림, none : 변환하지 않음

$doller = f_decimal(123.456, 2, 'floor');

/* $doller
    Decimal\Decimal Object
    (
        [value] => 123.45
        [precision] => 28
    )
*/

$doller = f_decimal(123.456, 2, 'ceil');

/* $doller
    Decimal\Decimal Object
    (
        [value] => 123.46
        [precision] => 28
    )
*/

$doller = f_decimal(123.456, 2, 'round');

/* $doller
    Decimal\Decimal Object
    (
        [value] => 123.46
        [precision] => 28
    )
*/

$doller = f_decimal(123.456, 2, 'none');

/* $doller
    Decimal\Decimal Object
    (
        [value] => 123.456
        [precision] => 28
    )
*/

실수(float number)의 정확한 연산을 위해서는 f_decimal()을 씌워서 계산하십시오.

$doller = 0.1 + 0.2 - 0.3;

/* $doller
    5.5511151231258E-17
*/

$doller = f_decimal(0.1, 1, 'none') + f_decimal(0.2, 1, 'none') - f_decimal(0.3, 1, 'none');

/* $doller
    Decimal\Decimal Object
    (
        [value] => 0
        [precision] => 28
    )

*/
fb_set($key, $value[, $ttl])
매개 변수:
  • $key (string) – 캐시 아이템 이름
  • $value – 저장할 데이터
  • $ttl (int) – 유효시간, 초 (기본값 60)
반환:

저장 TRUE, 저장되지 않음 FALS

반환 형식:

bool

$value를 캐시 저장소에 저장합니다. 저장에 실패하면 FALSE를 리턴합니다.

fb_set('test', ['name' => '이름']); // 60초 동안 유효

fb_set('test_ttl', 100, 3600); // 3600초(1시간) 동안 유효
fb_get($key)
매개 변수:
  • $key (string) – 캐시 아이템 이름
반환:

항목 값, 찾지 못한 경우 NULL

반환 형식:

both

캐시 저장소에 저장된 데이터를 가져옵니다. 항목이 존재하지 않으면 NULL을 리턴합니다.

$test = fb_get('test');
fb_del($key)
매개 변수:
  • $key (string) – 캐시 아이템 이름
반환:

성공 true, 실패 false

반환 형식:

bool

캐시 저장소에 저장된 데이터를 삭제합니다. 삭제에 실패하면 FALSE를 리턴합니다.

$test = fb_del('test');
ci_load_library($library)
매개 변수:
  • $library (string) – Codeigniter Library 이름
반환:

object

반환 형식:

object

Codeigniter 라이브러리 로드후 객체로 반환합니다.

$image = ci_load_library('image_lib'); // image_lib 로드후 객체 반환
fb_encryption($plain_text)
매개 변수:
  • $plain_text (string) – 암호화할 문자열
반환:

암호화된 문자열

반환 형식:

string

문자열을 암호화합니다.

$encStr = fb_encryption('test');
fb_decryption($ciphertext)
매개 변수:
  • $plain_text (string) – 암호화된 문자열을 평문으로 해독합니다.
반환:

문자열

반환 형식:

string

암호화된 문자열을 평문으로 해독합니다.

$decStr = fb_encryption('YTBlNjE5Y2Q3MjQ4NDcxN2Q4MjllYTljN2YxYWZjNmU5ZTUzZTczZDI5ZmI3NzlmYTg5MzIxYTIzZWUwMGVjMDM4MjJjNmQ4YjA0YWIzZTczZTAxZDc3N2JjNDYyYmZjMWExNTNiYTUwMTBjMzIyN2VlNmVlZjY1ZTk2OGY2ZTBKOEl6Vm1RRWd4SVN2ZzVoaVlGRDVUTUQvdzQ9');

// $decStr : test
start_master_db()

Query builder의 select 조회를 master DB를 이용하도록 합니다.

end_master_db()

Query builder의 select 조회를 slave DB를 이용하도록 합니다.

start_master_db();
$this->db
    ->from(TBL_COMMON_USER)
    ->where('id', 'test')
    ->exec()
    ->getRowArray();
end_master_db();
fb_download($filename, $data[, $set_mime])
매개 변수:
  • $filename (string) – 다운로드시 사용할 파일명
  • $data – 다운로드 데이타
  • $set_mime (string) – 다운로드 파일 타입
반환 형식:

void

$filename 으로 파일 다운로드를 진행합니다.

$data = 'test';

fb_download('test.txt', $data);

파일 다운로드 샘플

$data = file_get_contents('/data/excel/test.xls');

fb_download('test.xls', $data);
sess_val([$key, $key ...])
매개 변수:
  • $key (string) – 세션 key 이름
반환:

세션 데이타

반환 형식:

both

세션에서 데이터를 조회합니다.

$adminInfo = sess_val('admin');
cook_val([$key, $key ...])
매개 변수:
  • $key (string) – 쿠키(Cookie) key 이름
반환:

쿠키 데이타

반환 형식:

both

쿠키에서 데이터를 조회합니다.

$adminInfo = cook_val('user');
is_mobile()
반환 형식:bool

모바일 기기로 접속했는지 확인합니다.

if(is_mobile()) {
    echo '모바일 기기입니다.';
} else {
    echo '모바일 기기가 아닙니다.';
}
is_login([$type][, $redirectUrl])
매개 변수:
  • $type (string) – check/redirect 로그인 되지 않았을때 동작 방법, 기본(check)
  • $redirectUrl (string) – 〈redirect〉 일때 이동할 URL
반환 형식:

bool

로그인 상태인지 확인합니다.

if(is_login()) {
    echo '로그인 상태입니다.';
} else {
    echo '로그인하여 주십시오.';
}

$type에 〈redirect’를 전달하면 로그인하지 않은 상태면 로그인 페이지로 이동합니다.

is_login('redirect', '/member/login'); // 로그인하지 않은 상태면 '/member/login' 으로 이동