테스트 사이트 - 개발 중인 베타 버전입니다

유용한 일반 함수 모음 (PHP)

· 7년 전 · 5440 · 12

//페이지 이동
function go($move = "back",$time = "0") {
    if($move == "back") echo("<script>history.back();</script>");
    else echo("<meta http-equiv='refresh' content='$time;url=$move'>");
}

//메시지창+히스토리백
function alert($message,$move = "back") {
    $print = "<script>window.alert('$message');";
    if($move == "back") $print .= "history.back();";
    else $print .= "location.href = '$move';";
    $print .= "</script>";
    echo("$print");
    exit;
}

//디비접속
function db() {
    global $connect;
    if(!$connect) {
        $connect = mysql_connect("localhost","testid","1234") or die("MySQL 접속 실패");
        mysql_select_db("testdb",$connect) or die("MySQL 접속 실패");
    }
}

//단어 필터링
function filter($string,$filter = "",$type = "change",$change = "###") {
    if(!$filter) return $string;
    $filter = explode(",",$filter);
    $fcount = sizeof($filter);
    for($i = 0;$i < $fcount;$i++) {
        if(eregi($filter[$i],$string)) {
            if($type == "error") alert("\"$filter[$i]\"은(는) 금칙어입니다.");
            else $string = str_replace($filter[$i],$change,$string);
        }
    }
    return $string;
}

//문자열 커트
function cutstr($str,$size) {
    if(!$size or (strlen($str) <= $size)) return $str;
    else for($i = 0;$i < $size;$i++) if(ord($str[$i]) > 127) $over++;
    return chop(substr($str,0,$size - $over%2))."...";
}

//테이블 생성여부 체크
function tablecheck($table,$db)
    $result = mysql_list_tables($db);
    for($i = 0;$i < mysql_num_rows($result);$i++) {
        if($table == mysql_tablename($result,$i)) return true;
    }
    return false;
}

//빠른 DB자료 로드(노가다 도우미;;)
function select($table,$field = "*",$where = "") {
    if(!$table) return false;
    $q = "select $field from $table";
    if($where) $q .= " where $where";
    $result = mysql_query($q);
    $return = mysql_fetch_array($result);
    return $return;
}

//////////아래는 제로보드 lib.php에서 발췌한 함수입니다.

// 빈문자열 경우 1을 리턴
function isblank($str) {
    $temp=str_replace(" ","",$str);
    $temp=str_replace("\n","",$temp);
    $temp=strip_tags($temp);
    $temp=str_replace(" ","",$temp);
    $temp=str_replace(" ","",$temp);
    if(eregi("[^[:space:]]",$temp)) return 0;
    return 1;
}


// 숫자일 경우 1을 리턴
function isnum($str) {
    if(eregi("[^0-9]",$str)) return 0;
    return 1;
}


// 숫자, 영문자 일경우 1을 리턴
function isalNum($str) {
    if(eregi("[^0-9a-zA-Z\_]",$str)) return 0;
    return 1;
}


// HTML Tag를 제거하는 함수
function del_html( $str ) {
    $str = str_replace( ">", ">",$str );
    $str = str_replace( "<", "<",$str );
    return $str;
}


// 주민등록번호 검사
function check_jumin($jumin) {
    $weight = '234567892345'; // 자리수 weight 지정
    $len = strlen($jumin);
    $sum = 0;

    if ($len <> 13) return false;

    for ($i = 0; $i < 12; $i++) {
        $sum = $sum + (substr($jumin,$i,1)*substr($weight,$i,1));
    }

    $rst = $sum%11;
    $result = 11 - $rst;

    if ($result == 10) $result = 0;
    else if ($result == 11) $result = 1;

    $ju13 = substr($jumin,12,1);

    if ($result <> $ju13) return false;
    return true;
}


// E-mail 주소가 올바른지 검사
function ismail( $str ) {
    if( eregi("([a-z0-9\_\-\.]+)@([a-z0-9\_\-\.]+)", $str) ) return $str;
    else return '';
}

// E-mail 의 MX를 검색하여 실제 존재하는 메일인지 검사
function mail_mx_check($email) {
    if(!ismail($email)) return false;
    list($user, $host) = explode("@", $email);
    if (checkdnsrr($host, "MX") or checkdnsrr($host, "A")) return true;
    else return false;
}


// 홈페이지 주소가 올바른지 검사
function isHomepage( $str ) {
    if(eregi("^http://([a-z0-9\_\-\./~@?=&-\#{5,}]+)", $str)) return $str;
    else return '';
}


// URL, Mail을 자동으로 체크하여 링크만듬
function autolink($str) {
    // URL 치환
    $homepage_pattern = "/([^\"\'\=\>])(mms|http|HTTP|ftp|FTP|telnet|TELNET)\:\/\/(.[^ \n\<\"\']+)/";
    $str = preg_replace($homepage_pattern,"\\1<a href=\\2://\\3 target=_blank>\\2://\\3</a>", " ".$str);

    // 메일 치환
    $email_pattern = "/([ \n]+)([a-z0-9\_\-\.]+)@([a-z0-9\_\-\.]+)/";
    $str = preg_replace($email_pattern,"\\1<a href=mailto:\\2@\\3>\\2@\\3</a>", " ".$str);

    return $str;
}


// 파일 사이즈를 kb, mb에 맞추어서 변환해서 리턴
function getfilesize($size) {
    if(!$size) return "0 Byte";
    if($size<1024) {
        return ($size." Byte");
    } elseif($size >1024 && $size< 1024 *1024)  {
        return sprintf("%0.1f KB",$size / 1024);
    }
    else return sprintf("%0.2f MB",$size / (1024*1024));
}

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 12개

감사합니다
3년 전
감사감사!

게시글 목록

번호 제목
17657
17655
17654
17653
17652
17651
17650
17642
17633
17632
17631
17630
17628
17624
17623
17620
17618
17617
17614
17612
17611
17610
17609
17608
17607
17604
17603
17602
17600
17594