'.$text.''; } function encCode( $nm, $date){ return BASE_CONVERT( $nm, 10, 36) .'-'. BASE_CONVERT( $r["date"], 10, 36).'-'. BASE_CONVERT( RAND(111,999), 10, 36); } function decCode( $data ){ $array = explode('-',$data); $rtn = array(); $rtn[0] = BASE_CONVERT( $array[0], 36, 10); $rtn[1] = BASE_CONVERT( $array[1], 36, 10); $rtn[2] = BASE_CONVERT( $array[2], 36, 10); return $rtn; } # 이미지목록 중 첫번재 이미지 리턴 function arrayThum( $path, $data ){ if( $data=="" ) return; $arr = explode(',',$data); if( $arr[0]=="" ) return; return ''; } // SQL 인젝션 취약점 제거 function injDelete( $data ){ $spc = array('<', '>', '(', ')', '\'', '"', ';', '=', '+', '|', '&', '-', '#', '..'); return str_replace($spc, '', $data); } function injDel( $data ){ $spc = array('<', '>', '(', ')', '\'', '"', ';', '=', '+', '|', '&', '#', '..'); return str_replace($spc, '', $data); } // 키워드 공백구분 badge 표시 function tagBadge($data) { $array = explode(' ', trim($data)); $string = ''; // 초기화 필수! foreach ($array as $item) { if ($item !== '') { $string .= ''.htmlspecialchars($item).''; } } return $string; } // 전체갯수 얻기 function _total( $tb_nm, $where, $dev = null){ global $connect; $qs = "SELECT COUNT(*) AS total FROM ".$tb_nm." ".$where; $q = mysqli_query($connect,$qs); $r = mysqli_fetch_array($q); if( $dev==true ){ echo '
'.$qs.'
'; } return $r["total"]; } // 값 1개만 얻기 function _getOnce( $fid , $tb_nm, $where){ global $connect; $q = mysqli_query($connect,"SELECT ".$fid." FROM ".$tb_nm." ".$where); $r = ($q==true) ? mysqli_fetch_array($q) : die(mysql_error()); if( isset($r[$fid]) ){ return $r[$fid]; } } // 값 1개만 얻기 function _row( $fid , $tb_nm, $where){ global $connect; $qs = "SELECT ".$fid." FROM ".$tb_nm." ".$where; $q = mysqli_query($connect,$qs); $r = ($q==true) ? mysqli_fetch_array($q) : die(mysql_error()); return $r; } // 값 1개 라인만 얻기 function _rows( $qs ){ global $connect; $q = mysqli_query($connect,$qs); $r = ($q==true) ? mysqli_fetch_array($q) : die(mysql_error()); return $r; } /* db 내용을 배열로 리턴 */ function _list( $sql ){ global $connect; $data = array(); $q = mysqli_query($connect,$sql); if( $q==false ) die(mysqli_error($connect)); while($r=mysqli_fetch_array($q)){ $data[] = $r; } return $data; } function _sortDesc( $tb_nm, $num, $act ){ global $connect; $sql = " SELECT a.nm, a.idx, ( SELECT b.nm FROM $tb_nm b WHERE a.idx > b.idx ORDER BY idx DESC LIMIT 1 ) AS pre, ( SELECT b.nm FROM $tb_nm b WHERE a.idx < b.idx ORDER BY idx ASC LIMIT 1 ) AS nxt FROM $tb_nm a WHERE nm=".$num." LIMIT 1 "; $query = mysqli_query($connect,$sql); $row = ($query==true) ? mysqli_fetch_array($query) : die(mysqli_error($connect)); switch( $act ){ case 'up' : if( $row["pre"]>0 ){ $q = mysqli_query($connect,"SELECT idx AS up FROM $tb_nm WHERE nm='".$row["pre"]."'"); $r = ($q==true) ? mysqli_fetch_array($q) : die(mysqli_error($connect)); IF( mysqli_query($connect,"UPDATE $tb_nm SET idx='".$r["up"]."' WHERE nm='".$num."'")==false ) die(mysqli_error($connect)); IF( mysqli_query($connect,"UPDATE $tb_nm SET idx='".$row["idx"]."' WHERE nm='".$row["pre"]."'")==false ) die(mysqli_error($connect)); return "OK|위로 이동되었습니다."; exit; } break; case 'dn' : if( $row["nxt"]>0 ){ $q = mysqli_query($connect,"SELECT idx AS dn FROM $tb_nm WHERE nm='".$row["nxt"]."'"); $r = ($q==true) ? mysqli_fetch_array($q) : die(mysqli_error($connect)); IF( mysqli_query($connect,"UPDATE $tb_nm SET idx='".$r["dn"]."' WHERE nm='".$num."'")==false ) die(mysqli_error($connect)); IF( mysqli_query($connect,"UPDATE $tb_nm SET idx='".$row["idx"]."' WHERE nm='".$row["nxt"]."'")==false ) die(mysqli_error($connect)); return "OK|아래로 이동되었습니다."; } break; } return'|데이터 없음'; } /* 1개씩 정렬 2023-12-12 */ function _sort( $tb_nm, $num, $act, $by = null ){ global $connect; $by = isset($by) && $by ? $by : 'ASC'; $sql = " SELECT a.nm, a.idx, ( SELECT b.nm FROM $tb_nm b WHERE a.idx > b.idx ORDER BY idx ".$by." LIMIT 1 ) AS nxt, ( SELECT b.nm FROM $tb_nm b WHERE a.idx < b.idx ORDER BY idx ".$by." LIMIT 1 ) AS pre FROM $tb_nm a WHERE nm=".$num." LIMIT 1 "; $query = mysqli_query($connect,$sql); $row = ($query==true) ? mysqli_fetch_array($query) : die(mysqli_error($connect)); switch( $act ){ case 'up' : if( $row["pre"] ){ $q = mysqli_query($connect,"SELECT idx AS up FROM $tb_nm WHERE nm='".$row["pre"]."'"); $r = ($q==true) ? mysqli_fetch_array($q) : die(mysqli_error($connect)); IF( mysqli_query($connect,"UPDATE $tb_nm SET idx='".$r["up"]."' WHERE nm='".$num."'")==false ) die(mysqli_error($connect)); IF( mysqli_query($connect,"UPDATE $tb_nm SET idx='".$row["idx"]."' WHERE nm='".$row["pre"]."'")==false ) die(mysqli_error($connect)); return "OK|위로 이동되었습니다."; exit; } break; case 'dn' : if( $row["nxt"] ){ $q = mysqli_query($connect,"SELECT idx AS dn FROM $tb_nm WHERE nm='".$row["nxt"]."'"); $r = ($q==true) ? mysqli_fetch_array($q) : die(mysqli_error($connect)); IF( mysqli_query($connect,"UPDATE $tb_nm SET idx='".$r["dn"]."' WHERE nm='".$num."'")==false ) die(mysqli_error($connect)); IF( mysqli_query($connect,"UPDATE $tb_nm SET idx='".$row["idx"]."' WHERE nm='".$row["nxt"]."'")==false ) die(mysqli_error($connect)); return "OK|아래로 이동되었습니다."; } break; } return'|데이터 없음'; } // 시간이 아닌 지난시간표시 function passing_time($datetime) { if( $datetime<1 ) return 0; $time_lag = time() - $datetime; if($time_lag < 60) { $posting_time = "방금"; } elseif($time_lag >= 60 and $time_lag < 3600) { $posting_time = floor($time_lag/60)."분 전"; } elseif($time_lag >= 3600 and $time_lag < 86400) { $posting_time = floor($time_lag/3600)."시간 전"; } elseif($time_lag >= 86400 and $time_lag < 2419200) { $posting_time = floor($time_lag/86400)."일 전"; } else { $posting_time = date("y.m.d", date($datetime)); } return $posting_time; } # 베너 함수 function _banner( $nm, $pb = null, $rsize = null){ global $connect; global $_SERVER; $query = mysqli_query($connect,"SELECT * FROM tbl_extra WHERE nm='".$nm."'"); $row = ($query==true) ? mysqli_fetch_array($query) : die(mysqli_error( $connect )); //preg_match_all("/(src=|href=)(\'|\")?([^<>\s\'\"]*)(\'|\"|\s|)/i", $row["contents"], $url); #IMAGE HREF preg_match_all("|]+>(.*)|U", $row["contents"], $url); for($i=0;$i0 ){ $array[$i] = $url[0][$i]; } else{ $array[$i] = $url[1][$i]; } if( $rsize ){ $array[$i] = str_replace('src=','" style="width:'.$rsize.'px;" src=',$array[$i]); } else{ $array[$i] = str_replace('">','" class="d-block w-100">',$array[$i]); } if( $pb ){ $array[$i] = '
'.$array[$i].'
'; } $string.= $array[$i]; } # 랜덤 if( $row["isrand"]==1 ) shuffle($array); return $string; } # 20231202 웹에디터 저장시 이미지 저장/삭제/빼기 # 20240329 삭제된 이미지 리턴 function html_iremove( $pre, $cont, $filetmp, $filepath, $tag = false){ global $_SERVER; $dels = ''; // 불필요한테그 제거 if( $tag==true ){ $cont = preg_replace('/(width(\:)\=?[0-9]+px\;?)/i', null, $cont); $cont = preg_replace('/(height(\:)\=?[0-9]+px\;?)/i', null, $cont); $cont = preg_replace('/(style\=\"\ \"?)/i', null, $cont); $cont = preg_replace('/(alt\=\"\" ?)/i', null, $cont); } # 수정으로 인한 내용에 없는 이미지 제거 if( $pre ){ preg_match_all("/]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $pre, $data); for($i=0;$i0 ){ preg_match_all("/]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $cont, $data); $tot = count($data[1]); for($i=0;$i<$tot;$i++){ if(strpos(' '.$data[1][$i],$filetmp)>0 ){ $upname = str_replace($filetmp, $filepath, $data[1][$i]); //이미지명 변경된 경로명 저장 $res = rename($_SERVER["DOCUMENT_ROOT"].$data[1][$i], $_SERVER["DOCUMENT_ROOT"].$upname); //임시 폴더 이동 if( $res==true ){ $cont = str_replace($data[1][$i], $upname, $cont); //내용에서 파일경로 변경 } }//end if }//end for }//end if if( $tag==true ){ $cont = str_replace("",">?",$cont); $cont = str_replace("]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $pre, $data); for($i=0;$i0 ){ preg_match_all("/]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $cont, $data); $tot = count($data[1]); for($i=0;$i<$tot;$i++){ if(strpos(' '.$data[1][$i],$filetmp)>0 ){ $upname = str_replace($filetmp, $filepath, $data[1][$i]); //이미지명 변경된 경로명 저장 $res = rename($_SERVER["DOCUMENT_ROOT"].$data[1][$i], $_SERVER["DOCUMENT_ROOT"].$upname); //임시 폴더 이동 if( $res==true ){ $cont = str_replace($data[1][$i], $upname, $cont); //내용에서 파일경로 변경 } }//end if }//end for }//end if if( $tag==true ){ $cont = str_replace("",">?",$cont); $cont = str_replace(" yyyy-mm-dd function ymdStr( $ymd ){ return substr($ymd,0,4).'-'.substr($ymd,4,2).'-'.substr($ymd,6,2); } function ymdwStr( $ymd ){ $date = mktime(0,0,0,substr($ymd,4,2),substr($ymd,6,2),substr($ymd,0,4)); $w = date('w',$date); $week = array('일','월','화','수','목','금','토'); return date('Y-m-d',$date) .'('. $week[$w].')'; } function wStr( $ymd ){ $date = mktime(0,0,0,substr($ymd,4,2),substr($ymd,6,2),substr($ymd,0,4)); $w = date('w',$date); $week = array('일','월','화','수','목','금','토'); return $week[$w]; } function mdwStr( $ymd ){ $date = mktime(0,0,0,substr($ymd,4,2),substr($ymd,6,2),substr($ymd,0,4)); $w = date('w',$date); $week = array('일','월','화','수','목','금','토'); return date('m-d',$date) .'('. $week[$w].')'; } function outwonComma( $price ){ if( $price==0 ) return ''; return ''.number_format($price); } function outwoniComma( $ico,$price ){ if( $price==0 ) return ''; return $ico.' '.number_format($price); } // 금액 없으면 공백 / 콤마 function outComma( $price ){ if( $price==0 ) return ''; return number_format($price); } function f_info($url,$strpos){ $f = pathinfo($url); $f['path'] = substr($f['dirname'],strpos($f['dirname'],$strpos)); $f['domain'] = substr($f['dirname'],0,strpos($f['dirname'],$strpos)); return $f; } // 게사판 클레스 class cBoard { //첨부파일 업로드 function upload($path,$file, $pre, $dels, $ext) { if( is_array($dels)==true && count($dels)>0 ){ $dels = implode(',',$dels); $dels = ',,'.$dels.','; } $tmp = array(); $pre = explode(',',$pre); //저장된 파일명 // 파일 업로드 for($i=0;$i0 ){ unlink( $path.$pre[$i] ); $pre[$i] = ''; } if( $file['name'][$i] ){ $tmp[] = auto_upload($path,$file['name'][$i],$file['tmp_name'][$i], $pre[$i], $ext,1); } else{ $tmp[] = $pre[$i]; } } return COUNT($tmp)>0 ? implode(',',$tmp) : ''; } //파일 페스 얻기 function f_info($url,$strpos){ $f = pathinfo($url); $f['path'] = substr($f['dirname'],strpos($f['dirname'],$strpos)); $f['domain'] = substr($f['dirname'],0,strpos($f['dirname'],$strpos)); return $f; } function f_delete( $chk ){ //데이터열기 $q = mysqli_query($connect,"SELECT * FROM $tb_nm WHERE nm='$chk[$i]'"); $r = ($q==true) ? mysqli_fetch_array($q) : die(mysqli_error($connect)); } } // 숫자 한글 변환 function price_kor($total_price){ $vr = ''; $price = $total_price; $trans_kor = array("","일","이","삼","사","오","육","칠","팔","구"); $price_unit = array("","십","백","천","만","십","백","천","억","십","백","천","조","십","백","천"); $valuecode = array("","만","억","조"); $value = STRLEN($price); $k=0; for($i=$value;$i>0;$i--){ $vv = ""; $vc = substr($price,$k,1); $vt = $trans_kor[$vc]; $k++; if($i%5 ==0){ $vv = $valuecode[$i/5]; } else{ if($vc){ $vv = $price_unit[$i-1]; } } $vr=$vr.$vt.$vv; } return $vr; } function telegram_msg( $token,$chat_id,$msg ){ if( $msg == '' ) return false; $url = 'https://api.telegram.org/bot'.$token.'/sendmessage?chat_id='.$chat_id.'&text='.urlencode($msg); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, 15); $response = curl_exec($ch); curl_close($ch); return $response; } //리사이즈 function convertApps( $path,$file,$scale ){ $departure = $path.$file; if( $file=='' || is_file($departure)==false) return $file; $f = pathinfo($departure); $size = getimagesize($departure); if( $size[0]<1 || $size[1]<1 || $size==false ) return $file; //작은 사이즈는 통과 if( $size[0]<$scale ) return $file; $scale = ($scale>0) ? $scale : 610; //이미지 개체 생성 switch($size[2]){ case 1 : $src_im = imageCreateFromGIF($departure); break; case 2 : $src_im = imageCreateFromJPEG($departure); break; default: $src_im = imageCreateFromPNG($departure); break; } $scaleY = ROUND(($size[1] * $scale) / $size[0]); $dst_im = imagecreatetruecolor($scale, $scaleY) or die('Cannot Initialize new GD image stream'); $im = imagecreate($scale,$scaleY); $white = ImageColorAllocate($im, 255, 255, 255); ImageCopy($dst_im,$im,0,0,0,0,$scale,$scaleY); ImageCopyResampled($dst_im, $src_im,0,0,0,0,$scale,$scaleY,$size[0],$size[1]); $time = explode(" ", microtime()); $usec = (double)$time[0]; $sec = (double)$time[1]; //파일명 자리수를 줄이기 위해 10진수 파일명일 36진수로 변경 $newfile = base_convert(($sec + $usec) * 100000, 10, 36) . rand(100,999) . '.jpg'; $src_im = imagejpeg($dst_im , $path.$newfile , 90); ImageDestroy($src_im); ImageDestroy($dst_im); unlink($departure); return $newfile; } // 전화번호의 숫자만 취한 후 중간에 하이픈(-)을 넣는다. // http://www.joshi.co.kr/index.php?mid=board_EudV58&document_srl=648 function add_hyphen($tel) { $tel = preg_replace("/[^0-9]/", "", $tel); // 숫자 이외 제거 if (substr($tel,0,2)=='02') return preg_replace("/([0-9]{2})([0-9]{3,4})([0-9]{4})$/", "\\1-\\2-\\3", $tel); else if (strlen($tel)=='8' && (substr($tel,0,2)=='15' || substr($tel,0,2)=='16' || substr($tel,0,2)=='18')) // 지능망 번호이면 return preg_replace("/([0-9]{4})([0-9]{4})$/", "\\1-\\2", $tel); else return preg_replace("/([0-9]{3})([0-9]{3,4})([0-9]{4})$/", "\\1-\\2-\\3", $tel); } function cls_price( $price ){ $price = trim($price); $price = strip_tags($price); $price = str_replace(",","",$price); return $price ; } //콤마제거 function comma_clear( $price ){ $price = trim($price); $price = strip_tags($price); $price = str_replace(',','',$price); return $price ; } //자동링크 function auto_link($contents) { // domain+port $pattern = "/(http|https|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-]+)+(:[0-9]{2,4})?\/?"; // sub roots $pattern.= "([\.~_0-9a-z-]+\/?)*"; // file & extension string $pattern.= "(\S+\.[_0-9a-z]+)?"; // parameters $pattern.= "(\?[_0-9a-z#%&=\-\+]+)*/i"; $replacement = "\\0"; return preg_replace($pattern, $replacement, $contents, -1); } //중복 제거 function overlap_Clear( $exp, $string ){ $string = txtFilter( $string ); if( $string == "" ) return ""; $arr = array_unique( explode($exp,$string) ); return implode($exp,$arr); } //문자 필터 function txtFilter( $string ){ $string = trim($string); $string = stripslashes($string); $string = strip_tags($string); $string = str_replace("http://","",$string); $string = str_replace("|","",$string); $string = str_replace("\\","",$string); $string = str_replace(", ",",",$string); return $string; } /* PHP 5.3.0 Function replacements POSIX PCRE ereg_replace() preg_replace() ereg() preg_match() eregi_replace() preg_replace() eregi() preg_match() split() preg_split() spliti() preg_split() sql_regcase() No equivalent */ //내용에 URL 자동링크 function autolinkChange($contents){ $pattern = "/(http|https|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-]+)+(:[0-9]{2,4})?\/?"; // domain+port $pattern.= "([\.~_0-9a-z-]+\/?)*"; // sub roots or sub directory $pattern.= "(\S+\.[_0-9a-z]+\??)?" ; // file & extension string //$pattern.= "([\\S+\\_0-9a-z#&=-]+)*/i"; // parameters $pattern.= "([_0-9a-z#&=-]+)*/i"; // parameters $replace = "\\0"; $data = preg_replace($pattern, $replace, $contents, -1); return $data; } function isNumberic($string){ $string = trim($string); $string = str_replace(",","",$string); $string = preg_replace("/[^0-9.-]/", "", $string); return $string; } //$thumb = uploadFile("$filedir/$dir/",$thumb_name,$thumb,$r[thumb],$extend,1); function uploadFile($filedir,$filename,$moment,$previous,$ext,$rename){ //No file. if(!$filename) return $previous; //File Extend Permission $f = pathinfo($filename); if($ext && strpos(" $ext",strtolower($f["extension"])) < 1){ echo(""); return $previous; } $newfile = $filename; //파일명 자동정의 if($rename == 1){ $time = explode(" ", microtime()); $usec = (double)$time[0]; $sec = (double)$time[1]; $newfile = base_convert(($sec + $usec) * 100000, 10, 36) . rand(100,999) . '.' . $f["extension"]; //16 -> 36 Convert } else{ $newfile = $rename . '.' . $f[extension]; } //새로운 파일첨부시만 이전파일이 있으면 삭제 if($filename && $previous && is_file($filedir.$previous)) unlink($filedir.$previous); //업로드전 중복여부 검사 if(is_file($filedir.$newfile)) { print""; return $previous; } //파일업로드 $result = move_uploaded_file($moment, $filedir.$newfile); if(!$result) { print""; return $previous; } return $newfile; } function multiuploadFiles(){ $func = func_get_args(); $dir = $func[0];//경로 $file = $func[1];//파일개체 $pre = $func[2];//이전파일 $ext = $func[3];//허용확장자 $isauto = $func[4];//파일명변경 $definename = ( ISSET($func[5]) && $func[5] ) ? $func[5] : '';//유저파일명 $pre_arr = explode(',',$pre); $str = ''; $filelength = count($file["name"]); for($i=0;$i<$filelength;$i++){ if($i > 0) $str.= ","; if($file["name"][$i]){ $f = pathinfo($file["name"][$i]); $f_ext = strtolower($f["extension"]); if($definename) $changename = $definename .".".$f["extension"]; //사용자 정의 파일명 else $changename = $isauto ? base_convert(date(time().rand(0,99)),10,36) . rand(100,999) . ".".$f["extension"] : $file["name"][$i]; //자동파일명 정의 //이전파일 삭제 if(is_file($dir.$pre_arr[$i]) == true) unlink($dir.$pre_arr[$i]); if($ext && strpos(" ,$ext,",",$f_ext,") < 1){ echo(""); $changename = ""; } //중복검사 if(is_file($dir.$changename) == true){ print""; $changename = ""; } $result = move_uploaded_file($file["tmp_name"][$i],"$dir$changename"); //파일업로드 $str.= $changename; } else{ $str.= $pre_arr[$i]; } } return $str; } #이메일 인증 function check_email($email, $check_dns = false){ if( (preg_match('/(@.*@)|(..)|(@.)|(.@)|(^.)/', $email)) || (preg_match('/^.+@([?)[a-zA-Z0-9-.]+.([a-zA-Z]{2,3}|[0-9]{1,3})(]?)$/', $email)) ) { if($check_dns){ $host = explode('@', $email); // Check for MX record if( checkdnsrr($host[1], 'MX') ) return true; // Check for A record if( checkdnsrr($host[1], 'A') ) return true; // Check for CNAME record if( checkdnsrr($host[1], 'CNAME') ) return true; } else{ return true; } } return false; } # [file_save] 파일열기 # $file : 파일명(경로포함) function file_load($file) { if(file_exists($file)){ $fp = fopen ($file,'r'); return @fread ($fp,filesize($file)); fclose ($fp); } } # [file_save] 파일저장 # $file : 파일명(경로포함) # $string : 저장할내용 function file_save($file,$string){ $fp = fopen ($file,'w'); fwrite ($fp,stripslashes($string)); fclose ($fp); } function fsave($file,$string){ $fp = fopen ($file,'w'); fwrite ($fp,$string); fclose ($fp); } //$stpage_time = ptime(0,0); # [page] 페이지 이동 # parameter # $start : 시작값 # $total : 전체값 # $scale : 표시할갯수 # $page_scale : 이동할 페이지 링크수 # $link : 페이지이동시 따라갈 파라미터 function pp($start,$total,$scale,$page_scale,$page_total,$link){ if($total<1 || $scale<1 ) return; $page = floor($start / ($scale * $page_scale)); if(($total > $scale) && ($start+1 > $scale*$page_scale)){ $pre_start = $page * $scale * $page_scale - $scale; $str.= '
  • '; } else $str.= '
  • '; for($vj=0; $vj<$page_scale; $vj++) { $ln = ($page * $page_scale + $vj) * $scale; $page_num = $page * $page_scale+$vj + 1; if($ln < $total) { if($ln != $start) $str.= '
  • '.$page_num.'
  • '; else $str.= '
  • '.$page_num.'
  • '; } } $n_start = ($page+1) * $scale * $page_scale; if($total > $n_start) $str.= '
  • '; else $str.= '
  • '; if( $page==0 ) $page = 1; ?>
    0) $str.= '처음'; else $str.= '처음'; $page = floor($start / ($scale * $page_scale)); if(($total > $scale) && ($start+1 > $scale*$page_scale)){ $pre_start = $page * $scale * $page_scale - $scale; $str.= '이전'; } else $str.= '이전'; for($vj=0; $vj<$page_scale; $vj++) { $ln = ($page * $page_scale + $vj) * $scale; $page_num = $page * $page_scale+$vj + 1; if($ln < $total) { if($ln != $start) $str.= ''.$page_num.''; else $str.= '['.$page_num.']'; } } $n_start = ($page+1) * $scale * $page_scale; if($total > $n_start) $str.= '다음'; else $str.= '다음'; $end_start = floor($total/$scale)*$scale; if($total > $scale) $str.= '맨끝'; else $str.= '맨끝'; ?>
    # # # # /* 2016년 다시 채크 */ function auto_upload($filedir,$filename,$moment,$previous,$is_ext,$is_auto) { if(!$filename) return $previous; //점이없는 파일이면 종료 if(substr_count($filename,'.') == 0) {msg($mstr[file][noext]);return;} //점이 1개이상인 파일명처리를 위해 루프처리 $filename_arr = explode('.',$filename); $filename_end = count($filename_arr) - 1; for($i=0;$i<=$filename_end;$i++) { if($first) $first.= "."; $first.= $filename_arr[$i]; if($i == $filename_end) $last = $filename_arr[$i]; } //허용파일 옶션 미입력시 이미지만 첨부 가능 //if(!$is_ext && exif_imagetype($filedir,$filename) > 16) {print""; return;} if($is_ext && strpos(",".$is_ext, $last) < 0) {print""; return;} $newfile = $filename; //파일명 자동정의 if($is_auto){ $time = explode(" ", microtime()); $usec = (double)$time[0]; $sec = (double)$time[1]; //파일명 자리수를 줄이기 위해 10진수 파일명일 36진수로 변경 $newfile = base_convert(($sec + $usec) * 100000, 10, 36) . rand(100,999) . '.' . $last; } //새로운 파일첨부시만 이전파일이 있으면 삭제 if($filename && $previous && is_file($filedir.$previous)) unlink($filedir.$previous); //업로드전 중복여부 검사 if(is_file($filedir.$newfile)) {print""; return;} //파일업로드 $result = move_uploaded_file($moment, $filedir.$newfile); if(!$result) {print""; return;} return $newfile; } # [page] 페이지 이동 # parameter # $start : 시작값 # $total : 전체값 # $scale : 표시할갯수 # $link : 페이지이동시 따라갈 파라미터 function mobilepg($start,$total,$scale,$link){ $page = floor($start / $scale); $pre_start = $page * $scale - $scale; $nxt_page = ($page+1) * $scale; ?>
        $scale) && ($start+1 > $scale)){?> 이전 이전
      1 / NAN
        $nxt_page){?> 다음 다음
    0) $str.= "첫쪽"; else $str.= "첫쪽"; $page = floor($start / ($scale * $page_scale)); if(($total > $scale) && ($start+1 > $scale*$page_scale)){ $pre_start = $page * $scale * $page_scale - $scale; $str.= "이전"; } else $str.= "이전"; for($vj=0; $vj<$page_scale; $vj++) { $ln = ($page * $page_scale + $vj) * $scale; $page_num = $page * $page_scale+$vj + 1; if($ln < $total) { if($ln != $start) $str.= "$page_num"; else $str.= "$page_num"; } } $n_start = ($page+1) * $scale * $page_scale; if($total > $n_start) $str.= "다음"; else $str.= "다음"; $end_start = floor($total/$scale)*$scale; if($total > $scale) $str.= "끝쪽"; else $str.= "끝쪽"; return "$str
    "; } # [page] 페이지 이동 # parameter # $start : 시작값 # $total : 전체값 # $scale : 표시할갯수 # $page_scale : 이동할 페이지 링크수 # $link : 페이지이동시 따라갈 파라미터 function page($start,$total,$scale,$page_scale,$page_total,$link){ if($total < 1) return; $str = ''; $page = floor($start / ($scale * $page_scale)); if(($total > $scale) && ($start+1 > $scale*$page_scale)){ $pre_start = $page * $scale * $page_scale - $scale; $str.= '
  • '; } else{ $str.= '
  • '; } for($vj=0; $vj<$page_scale; $vj++) { $ln = ($page * $page_scale + $vj) * $scale; $page_num = $page * $page_scale+$vj + 1; if($ln < $total) { if($ln != $start){ $str.= '
  • '.$page_num.' '; } else{ $str.= '
  • '.$page_num.' '; } } } $n_start = ($page+1) * $scale * $page_scale; if($total > $n_start){ $str.= '
  • '; } else{ $str.= '
  • '; } if( $page==0 ) $page = 1; ?>
    $scale) && ($start+1 > $scale*$page_scale)){ $pre_start = $page * $scale * $page_scale - $scale; $str.= '
  • '; } else{ $str.= '
  • '; } for($vj=0; $vj<$page_scale; $vj++) { $ln = ($page * $page_scale + $vj) * $scale; $page_num = $page * $page_scale+$vj + 1; if($ln < $total) { if($ln != $start){ $str.= '
  • '.$page_num.' '; } else{ $str.= '
  • '.$page_num.' '; } } } $n_start = ($page+1) * $scale * $page_scale; if($total > $n_start){ $str.= '
  • '; } else{ $str.= '
  • '; } if( $page==0 ) $page = 1; ?>
    * Total : 0 (page 0/0)
    "; $ReplyTo = "\"$name\"<$mail>"; if($html==1) $html_head="\nContent-Type:text/html"; $addtional="From : $From\nReply-To:$ReplyTo$html_head"; return mail($email,$subject,$body,$addtional); }