>> Edit article
이름
제목
패스워드
안녕하세요? 다음의 내용은 저 같이 개념없는 초보자를 위한 내용입니다. 따라서 자신이 전문가라고 생각하시면 고생스럽게 읽을 필요는 없습니다. 참고만 하시길 바랍니다. 주)**********오해의 소지를 없애기 위해서************** 함수 테스트에 약간의 어패가 있습니다. 즉, 하나의 함수에 대해서 그렇게 많이(100만 이상) 사용하지 않기 때문에 정확한 테스트는 아닙니다. 다만, 똑같은 기능을 하는 함수는 여러개 존재할 수 있는데, 자신이 만든 함수중 최적의 함수를 선택하는 하나의 방법일 뿐입니다. 저 같이 함수를 개념없이 만들다 보니 여러개의 비슷한 함수가 나오더군요. 한번 실행시 거의 차이가 없지만 비교적 덩치가 큰 함수라면 한번 생각해 볼만한 문제인것 같습니다. [함수 테스트 목적 및 방법] 아래의 테스트는 아주 같단한 함수를 만들어 for()문을 100만회 이상 돌려 가장 빠른 함수를 선택하는 방법입니다. [테스트에 전에] 일반적으로 PHP에서는 최대 스크립트 실행 시간을 30초로 설정되어 있습니다. 많은 회수의 for()문을 돌리면 30초가 넘어가는 경우가 많습니다. 이 때는 php.ini(php3.ini)에서 max_execution_time = 30 부분을 적당하게 수정하고 재가동했는데도 안되더군요... 다시 PHP를 컴파일해야 할듯......... [테스트에 사용된 함수] // 출처 : JSBOARD ......... 속도 테스트를 위해서 function get_microtime($old, $new) { // 주어진 문자열을 나눔 (sec, msec으로 나누어짐) $old = explode(" ", $old); $new = explode(" ", $new); $time[msec] = $new[0] - $old[0]; $time[sec] = $new[1] - $old[1]; if($time[msec] < 0) { $time[msec] = 1.0 + $time[msec]; $time[sec]--; } $time = sprintf("%.2f", $time[sec] + $time[msec]); return $time; } // 각 요일을 한글로 출력하는 함수 // $sub 변수가 있을 경우 자세하게(?) 출력 // $date 변수는 유닉스 timestamp 값이다. function HDay_Others($date="0", $sub="0") { if(!$date) { $date = time(); } // 특정 날짜가 없다면 현재시간을 $date로 정한다. $date = date("w", $date); // 각 요일 if($sub) { $date = eregi_replace("0", "일요일", $date); $date = eregi_replace("1", "월요일", $date); $date = eregi_replace("2", "화요일", $date); $date = eregi_replace("3", "수요일", $date); $date = eregi_replace("4", "목요일", $date); $date = eregi_replace("5", "금요일", $date); $date = eregi_replace("6", "토요일", $date); } else { $date = eregi_replace("0", "일", $date); $date = eregi_replace("1", "월", $date); $date = eregi_replace("2", "화", $date); $date = eregi_replace("3", "수", $date); $date = eregi_replace("4", "목", $date); $date = eregi_replace("5", "금", $date); $date = eregi_replace("6", "토", $date); } return $date; } // 각 요일을 한글로 출력하는 함수 // $sub 변수가 있을 경우 자세하게(?) 출력 // $date 변수는 유닉스 timestamp 값이다. function HDay($date="0", $sub="0") { if(!$date) { $date = time(); } // 특정 날짜가 없다면 현재시간을 $date로 정한다. $date = date("w", $date); // 각 요일 if($date == 0 ) { $date = "일요일"; } else if($date == 1 ) { $date = "월요일"; } else if($date == 2 ) { $date = "화요일"; } else if($date == 3 ) { $date = "수요일"; } else if($date == 4 ) { $date = "목요일"; } else if($date == 5 ) { $date = "금요일"; } else { $date = "토"; } if(!$sub) { $date = eregi_replace("요일", "", $date); } return $date; } // switch() 문 사용시 function HDay_s($date="0", $sub="0") { if(!$date) { $date = time(); } $date = date("w", $date); // 각 요일 switch($date) { case "0": $date = "일요일"; break; case "1": $date = "월요일"; break; case "2": $date = "화요일"; break; case "3": $date = "수요일"; break; case "4": $date = "목요일"; break; case "5": $date = "금요일"; break; case "6": $date = "토요일"; break; } if(!$sub) { $date = eregi_replace("요일", "", $date); } return $date; } // 파일 크기 출력 함수 // $bfsize 변수는 bytes 단위의 크기임 // JSBOARD에 있는 함수입니다. function File_HSize($bfsize, $sub = "0") { $bfsize_Bytes = number_format($bfsize); // 3자리를 기준으로 컴마를 사용한다. if($bfsize >= 1024 && $bfsize < 1048576) { // KBytes 범위 $bfsize_KB = round($bfsize/1024); $bfsize_KB = number_format($bfsize_KB); if($sub) { $bfsize = "$bfsize_KB KB($bfsize_Bytes Bytes)"; } else { $bfsize = "$bfsize_KB KB"; } } else if($bfsize >= 1048576) { // MB 범위 $bfsize_MB = round($bfsize/1048576); $bfsize_MB = number_format($bfsize_MB); if($sub) { $bfsize = "$bfsize_MB MB($bfsize_Bytes Bytes)"; } else { $bfsize = "$bfsize_MB MB"; } } else { $bfsize = "$bfsize_Bytes Bytes"; } return $bfsize; } // 바로 앞의 File_HSize()함수와 비교하기 위해서 // 몇줄을 없애고 간략하게 정리(?)해 보았습니다. function File_HSize_Others($bfsize, $sub = "0") { $bfsize_Bytes = number_format($bfsize);. if($bfsize >= 1024 && $bfsize < 1048576) { // KBytes 범위 $bfsize_KB = round($bfsize/1024); $bfsize = number_format($bfsize_KB); $bfsize = "$bfsize KB"; } else if($bfsize >= 1048576) { // MB 범위 $bfsize_MB = round($bfsize/1048576); $bfsize = number_format($bfsize_MB); $bfsize = "$bfsize MB"; } else { $bfsize = "$bfsize_Bytes Bytes"; } // 비트 연산이 아닌 논리연산으로 권장 if($sub && ($bfsize_KB || $bfsize_MB)) { $bfsize = "$bfsize($bfsize_Bytes Bytes)"; } return $bfsize; } // 테스트하지 않았지만 그냥 올려봅니다... // 현재 제 게시판에 사용하는 함수임...........꽤 새벽에 오시는 분이 많더군요.. // // 하루 24시간을 새벽/오전/오후/저녁의 시간대를 출력하는 함수 // $sub 변수가 없다면 단순하게 오전/오후로 출력함. function HDay_AP($date="0", $sub="0") { if(!$date) { $date = time(); } $date = date("G", $date); //$date = $date/6; // 하루를 6시간씩 4개로 나눈다..(새벽/오전/오후/저녁) if($sub) { if($date >= 0 && $date < 6) { $date = "새벽"; } else if($date >= 6 && $date < 12) { $date = "오전"; } else if($date >= 12 && $date < 18) { $date = "오후"; } else { $date = "저녁"; } } else { if($date >= 0 && $date < 12) { $date = "오전"; } else { $date = "오후"; } } return $date; } // 이 함수는 재미삼아 만들어본 함수입니다. // 예전에 "허준" 드라마에서 "묘시에 탕약을 드실것이옵니다." // 라는 대사에 대해서 "묘시"가 몇시인지 짐작이 가지 않아서... // // 하루 24시간을 12 시간대로 출력하는 함수 function HDay_12Z($date="0") { if(!$date) { $date = time(); } $date = date("G", $date); //$date = $date/2; // 하루를 2시간씩 12개로 나눈다..(자시~해시까지) if($date >= 1 && $date < 3) { $date = "寅時(인시)"; } else if($date >= 3 && $date < 5 ) { $date = "卯時(묘시)"; } else if($date >= 5 && $date < 7) { $date = "辰時(진시)"; } else if($date >= 7 && $date < 7) { $date = "巳時(사시)"; } else if($date >= 9 && $date < 11) { $date = "午時(오시)"; } else if($date >= 11 && $date < 13) { $date = "未時(미시)"; } else if($date >= 13 && $date < 15) { $date = "申時(신시)"; } else if($date >= 15 && $date < 17) { $date = "酉時(유시)"; } else if($date >= 17 && $date < 19) { $date = "戌時(술시)"; } else if($date >= 19 && $date < 21) { $date = "亥時(해시)"; } else if($date >= 21 && $date < 23) { $date = "子時(자시)"; } else { $date = "丑時(축시)"; } return $date; } // 현재 또는 특정한 날짜를 한글로 출력하는 함수 // $sub가 있을 경우 시:분:초로 출력한다. function HDate_Time($date="0",$sub="0") { if(!$date) { $date = time(); } if($sub) { $date = date("Y년 m월 d일 H:i:s", $date); // 상세한 시간 시/분/초까지 } else { $date = date("Y년 m월 d일", $date); } return $date; } *참고로 time()함수와 위의 HDay_AP()를 이용해서 세계각지의 현재 시각을 직감적으로 표시할 수 있습니다........... (*채팅할때 제가 사용하는 함수이기도 합니다...) ...계속 -- ..
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved