= 127){ $i++; } if (!($lastChar == 10 ||$lastChar == 13 || $lastChar == 32)) { $Char++; } } return $Char; } function charcut ( $String, $Length, $EndMark='...',$CharSet='UTF-8') { $String = stripslashes($String); $String = text_revers($String,'on'); //$String = strip_tags($String); $String = stripHtmlTag($String); $String = trim($String); if(strtoupper($CharSet) == 'UTF-8') { preg_match_all('/[\xEA-\xED][\x80-\xFF]{2}|./', $String, $match); $m = $match[0]; $slen = strlen($String); // length of source string $tlen = strlen($EndMark); // length of tail string $mlen = count($m); // length of matched characters if ($slen <= $Length) return text_revers($String,'off'); if ($mlen <= $Length) return text_revers($String,'off'); $ret = array(); $count = 0; for ($i=0; $i < $Length; $i++) { //$count += ($checkmb && strlen($m[$i]) > 1)?2:1; $count += 1; //if ($count + $tlen > $len) break; if ($count > $Length) break; $ret[] = $m[$i]; } $String = join('', $ret); return text_revers($String,'off').$EndMark; } else { // 자를필요없으면 리턴 if( strlen( $String ) <= $Length ) return $String; for( $i=0; $i 128 ) { $i++; $Length++; } //$Length 까지 왔을경우 리턴 if( $i >= $Length ) $String = substr( $String, 0, $Length ).$EndMark; } return text_revers($String,'off'); } } function text_revers($txt,$act='on') { if($act=='on') { $txt = preg_replace("/ /"," ",$txt); $txt = preg_replace("/ /","",$txt); $txt = preg_replace("/</","<",$txt); $txt = preg_replace("/>/",">",$txt); $txt = preg_replace("/"/","\"",$txt); $txt = preg_replace("/"/","\"",$txt); $txt = preg_replace("/'/","\'",$txt); $txt = preg_replace("/'/","\'",$txt); $txt = preg_replace("/[/","[",$txt); $txt = preg_replace("/]/","]",$txt); } else { $txt = preg_replace("//",">",$txt); $txt = preg_replace("/\"/",""",$txt); $txt = preg_replace("/\'/","'",$txt); } return $txt; } // 글자르기 function charCut_ ( $String, $Length, $EndMark='...' ) { $String = stripslashes($String); $String = eregi_replace(" "," ",$String); $String = eregi_replace(" ","",$String); $String = eregi_replace("<","<",$String); $String = eregi_replace(">",">",$String); $String = eregi_replace(""","\"",$String); $String = eregi_replace(""","\"",$String); $String = eregi_replace("'","\'",$String); $String = eregi_replace("'","\'",$String); $String = eregi_replace("[","[",$String); $String = eregi_replace("]","]",$String); //$String = strip_tags($String); $String = stripHtmlTag($String); $String = trim($String); // 자를필요없으면 리턴 if( strlen( $String ) <= $Length ) return $String; for( $i=0; $i 128 ) { $i++; $Length++; } //$Length 까지 왔을경우 리턴 if( $i >= $Length ) return substr( $String, 0, $Length ).$EndMark; } // 자를필요가 없지만 글자수와 byte 수를 비교하지 못함으로 // 루프를 다돌아도 리턴되지 않는다면 그냥 월래 문자열 return; $String = eregi_replace("<","<",$String); $String = eregi_replace(">",">",$String); $String = eregi_replace("\"",""",$String); $String = eregi_replace("\'","'",$String); return $String; } // 태그제거 function stripHtmlTag($text, $allowTags = array()) { $text = preg_replace('/<(script|style)[^>]*>.*?<\/\1>/si', '', $text); if(count($allowTags) == 0) $text = preg_replace('/<[\w\/!]+[^>]*>/', '', $text); else { preg_match_all('/<\/?([\w!]+)[^>]*?>/s', $text, $matches); for($i=0; $i\\2",$text); } function str_tag_on($str) { $str = str_replace("&", "&", $str); $str = str_replace("<", "<", $str); return str_replace(">", ">", $str); } function str_tag_off($str) { $str = str_replace("<", "<", $str); return str_replace(">", ">", $str); } /* HTML Tag를 제거하는 함수 */ function _del_html( $str ) { $str = str_replace( ">", ">",$str ); $str = str_replace( "<", "<",$str ); return $str; } function str_trans($str) { return str_replace("'", "'", str_replace("\"", """, $str)); } function str_trans_rev($str) { return str_replace("'", "'", str_replace(""", "\"", $str)); } function str_innerHTML($str) { return str_replace("'", "\'", preg_replace("/\r\n|\r|\n/", "", $str)); } function nl2br2($str) { return preg_replace("/\r\n|\r|\n/", "
", $str); } // 문자열이 한글, 영문, 숫자, 특수문자로 구성되어 있는지 검사 function checkString($str, $options) { global $club; $s = ''; for($i=0;$i= 0xA0 && $oc <= 0xFF) { if (strtoupper($club['charset']) == 'UTF-8') { if ($options & _J_HANGUL_) { $s .= $c . $str[$i+1] . $str[$i+2]; } $i+=2; } else { // 한글은 2바이트 이므로 문자하나를 건너뜀 $i++; if ($options & _J_HANGUL_) { $s .= $c . $str[$i]; } } } // 숫자 else if ($oc >= 0x30 && $oc <= 0x39) { if ($options & _J_NUMERIC_) { $s .= $c; } } // 영대문자 else if ($oc >= 0x41 && $oc <= 0x5A) { if (($options & _J_ALPHABETIC_) || ($options & _J_ALPHAUPPER_)) { $s .= $c; } } // 영소문자 else if ($oc >= 0x61 && $oc <= 0x7A) { if (($options & _J_ALPHABETIC_) || ($options & _J_ALPHALOWER_)) { $s .= $c; } } // 공백 else if ($oc >= 0x20) { if ($options & _J_SPACE_) { $s .= $c; } } else { if ($options & _J_SPECIAL_) { $s .= $c; } } } // 넘어온 값과 비교하여 같으면 참, 틀리면 거짓 return ($str == $s); } /* 문자셋 변환 iconv 이용 */ /* php에 iconv() 함수 없을때 사용 */ function euckr2utf8($str) { $str = ereg_replace("\n","\\n",$str); $str = exec('echo \''.$str.'\' |iconv -c -f uhc -t utf-8'); return ereg_replace("\\\\n","\n",$str); } function utf82euckr($str) { $str = ereg_replace("\n","\\n",$str); $str = exec('echo \''.$str.'\' |iconv -c -f utf-8 -t uhc'); return ereg_replace("\\\\n","\n",$str); } /* ----------------------------------------------------------- Charset 을 변환하는 함수 ----------------------------------------------------------- iconv 함수가 있으면 iconv 로 변환하고 없으면 mb_convert_encoding 함수를 사용한다. 둘다 없으면 사용할 수 없다. $reg_mb_nick = convertCharset('UTF-8','CP949',$reg_mb_nick); */ function convertCharset($from_charset, $to_charset, $str) { if( function_exists('iconv') ) return iconv($from_charset, $to_charset, $str); elseif( function_exists('mb_convert_encoding') ) return mb_convert_encoding($str, $to_charset, $from_charset); else die("Not found 'iconv' or 'mbstring' library in server."); } // 세션변수 생성 function set_session($session_name, $value) { session_register($session_name); // PHP 버전별 차이를 없애기 위한 방법 $$session_name = $_SESSION["$session_name"] = $value; } // 세션변수값 얻음 function get_session($session_name) { return $_SESSION[$session_name]; } /********* 지정된경로로 이동 *********/ function MoveUrl($url) { //echo ""; echo ""; exit; } /********* 메시지용 함수 *********/ function Msg($Msg) { echo ""; exit; } function Msg_History($Msg,$go) { echo ""; exit; } function Msg_Only($Msg) { echo ""; } function Msg_Parent($msg,$href) { echo ""; return true; } function Msg_Href($Msg,$href) { echo ""; exit; } function Msg_Close($Msg) { echo ""; echo ""; exit; } function Msg_Opener_reload($Msg) { echo ""; exit; } // 년도를 하향하여 계산하는 함수 // make_year($year, $d_year, $control="") function make_year($year, $d_year='10', $control="") { if(empty($year)) { for($i=date("Y"), $j= $i - $d_year ;$i >= $j; $i--) { if($control=='no') { //컨트롤값을 no로 넘겨주면 현재의 날짜로 초기화 시키지 않고 선택이 되지 않도록 한다. $selected=''; } else { $selected = ($i==date("Y")) ? 'selected' : ''; } echo ""; } } else { for($i=date("Y"), $j= $i - $d_year;$i >= $j; $i--) { $selected=($i==$year) ? 'selected' : ''; echo ""; } } } //달을 계산하는 함수 function make_month($month, $control="") { if(empty($month)) { for($i=1;$i<=12;$i++) { if($control=='no') { //컨트롤값을 no로 넘겨주면 현재의 날짜로 초기화 시키지 않고 선택이 되지 않도록 한다. $selected=''; } else { $selected = ($i==date("n")) ? 'selected' : ''; } echo ""; } } else { for($i=1;$i<=12;$i++) { $selected=($i==$month) ? 'selected' : ''; echo ""; } } } //날짜를 출력하는 함수 function make_day($day, $control="") { if(empty($day)) { for($i=1;$i<=31;$i++) { if($control=='no') { //컨트롤값을 no로 넘겨주면 현재의 날짜로 초기화 시키지 않고 선택이 되지 않도록 한다. $selected=''; } else { $selected = ($i==date("j")) ? 'selected' : ''; } echo ""; } } else { for($i=1;$i<=31;$i++) { $selected=($i==$day) ? 'selected' : ''; echo ""; } } } /****************************************************************************** * 시간관련 함수들 *****************************************************************************/ // 현재 년+월+일+시+분+초+마이크로초 값을 문자열 형태로 붙여서 반환합니다. function getYearToMicro() { $t_time = date("Y").date("m").date("d").date("H").date("i").date("s"); // return $t_time.substr(getMicroTime(),2); $t_time = substr($t_time . getMicroTime(), 0, 18); return $t_time; } // 현재 년+월+일+시+분+초 값을 문자열 형태로 붙여서 반환합니다. function getYearToSecond() { $t_time = date("Y").date("m").date("d").date("H").date("i").date("s"); return $t_time; } // 현재 년+월+일을 문자열 형태로 붙여서 반환합니다. function getYearToDay() { $t_time = date("Y").date("m").date("d"); return $t_time; } // 날짜에 특정 필드를 더한 String을 반환 // Argus : $datetimestamps : 날짜 ( 20030402121045 ) // : $field : "YEAR" ,"MONTH" ,"DAY" ,"HOUR" ,"MINUTE","SECOND" // : $addVal : 더하거나 뺄값. function getDateAdd ($datetimestamps, $field='', $addVal='' ) { $_rtn = ''; $year = (int) substr ($datetimestamps, 0 , 4 ); $month = (int) substr ($datetimestamps, 4 , 2 ); $day = (int) substr ($datetimestamps, 6 , 2 ); $hour = (int) substr ($datetimestamps, 8 , 2 ); $minute = (int) substr ($datetimestamps, 10, 2 ); $second = (int) substr ($datetimestamps, 12, 2 ); if ( $field == "YEAR" ) { $year += $addVal; } else if ( $field == "MONTH" ) { $month += $addVal; } else if ( $field == "DAY" ) { $day += $addVal; } else if ( $field == "HOUR" ) { $hour += $addVal; } else if ( $field == "MINUTE" ) { $minute += $addVal; } else if ( $field == "SECOND" ) { $second += $addVal; } $_rtn = date ( "YmdHis" , mktime ( $hour, $minute, $second, $month, $day, $year ) ); return $_rtn; } // 게시물 시간 입력을 위한 마이크로 타임 구함 function getMicroTime () { $microtimestmp = explode(" ",microtime()); $microtimestmp = substr($microtimestmp[0],2); return $microtimestmp; } // 마이크로 타임 구함 function getMicroSecond () { list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } // 시간의 차를 구합니다. function printExeTime($startTime, $endTime) { $exe = $endTime - $startTime; logs ( "\n시작 시간 : " . $startTime . "\n", true); logs ( "\n종료 시간 : " . $endTime . "\n", true); logs ( "\n실행 시간 : " . sprintf("%0.3f",$exe) . "\n", true); } /****************************************************************************** * 일반 함수 *****************************************************************************/ /* 빈문자열 경우 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; } /* 주민등록번호 검사 */ 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\\2://\\3", " ".$str); // 메일 치환 $email_pattern = "/([ \n]+)([a-z0-9\_\-\.]+)@([a-z0-9\_\-\.]+)/"; $str = preg_replace($email_pattern,"\\1\\2@\\3", " ".$str); return $str; } /* IP를 숨겨서 보여준다 */ function hidden_ip($str) { $explode = explode('.', $str); $str = $explode[0] . "." . $explode[1] . ".***.***"; 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)); } /* 문자열 끊기 */ /* (이상의 길이일때는 ... 로 표시) */ function cut_str($msg,$cut_size,$cut_str='...') { if($cut_size<=0) return $msg; if(ereg("\[re\]",$msg)) $cut_size=$cut_size+4; for($i=0;$i<$cut_size;$i++) if(ord($msg[$i])>127) $han++; else $eng++; $cut_size=$cut_size+(int)$han*0.6; $point=1; for ($i=0;$i$cut_size) return $pointtmp.$cut_str; if (ord($msg[$i])<=127) { $pointtmp.= $msg[$i]; if ($point%$cut_size==0) return $pointtmp.$cut_str; } else { if ($point%$cut_size==0) return $pointtmp.$cut_str; $pointtmp.=$msg[$i].$msg[++$i]; $point++; } $point++; } return $pointtmp; } /* 아이피를 차단한다 */ function check_blockip($blockip) { global $Msgs; $avoid_ip=explode(",",$blockip); $count = count($avoid_ip); for($i=0;$i<$count;$i++) { if(!isblank($avoid_ip[$i]) && eregi($avoid_ip[$i],$_SERVER[REMOTE_ADDR])) { Msg($Msgs['yourip_blockip']); exit; } } } ?> - LIST