come back..

결혼 후 홈페이지 단장을 새로 하기로 했었는데..

1년이 지나서야 서서히 바뀌다니..

무지 게으른 변군과 조양..^^

지금이라도 부지런을 떨어야겠다.

색상 선택기[color picker]

$value_name = urldecode($value);

// HSV를 RGB로 변환하여 HTML 색상으로 반환
// 인터넷에서 구한 C 소스를 php 로 변환함
function hsv2rgb($h, $s, $v)
{
$v1 = $v * 2.55;
if($s == 0)
{
$r = $g = $b = $v1;
$str = sprintf(“#%02X%02X%02X”, $r, $g, $b);
return $str;
}

$h2 = $h%32;
$h2 = abs(16-$h2);

$aa = $v1;
$bb = ($v1 * (100-$s))/100;
$cc = ($h2 * ($aa – $bb))/16+$bb;

if( 0 <= $h && $h < 16){ $r = $aa; $g = $bb; $b = $cc;}
if( 16 <= $h && $h < 32){$r = $aa; $g = $cc; $b = $bb;}
if( 32 <= $h && $h < 48){$r = $cc; $g = $aa; $b = $bb;}
if( 48 <= $h && $h < 64){$r = $bb; $g = $aa; $b = $cc;}
if( 64 <= $h && $h < 80){$r = $bb; $g = $cc; $b = $aa;}
if( 80 <= $h && $h <= 100){$r = $cc; $g = $bb; $b = $aa;} $str = sprintf(“#%02X%02X%02X”, $r, $g, $b);
return $str;
}

echo(“
“.

“.

“.
ColorPicker
“.

“.


“.

“.

“.

“.

“.

“.

“.

“.
ColorPicker
“.
“.

“);

// 색상 테이블 출력
for($cs = 0; $cs < 100; $cs+=4)
{
echo(“

“);
for($ch = 0; $ch < 100; $ch+=4)
{
$color = hsv2rgb($ch, $cs, 100); // 색상 밝기 100 으로 고정 …
echo(“

“);
}
echo(“

“);
}

echo(“

“.
“.
CC

“.

“.

“.

“.

“.

“.

“.
색상을 선택하세요

“.

“.

<
br>

“.

“);
?>

다음은 테스트용 파일입니다.

test.php







‘)”>
ColorPicker


개발시 유용한 함수 라이브러리

//
// Author : Spectator(Kim Kwan Joong)
//

// require나 include시 중복선언 방지를 위한 부분
if( !$__FUNC_PHP__ )
{
$__FUNC_PHP__ = 1;

// 처음 몇개는 자바스크립트를 처리하는 함수입니다.
// 실제로 가장 자주 사용되는 함수들이죠.
// (일일이 입력하는 노가다란…-_-;)

// GoBack() : 이전페이지로 바로 갑니다.
// GoBack($msg) : $msg를 경고메시지로 출력하고 갑니다.

function GoBack($msg = “”)
{
echo “
“;
}

// CloseWin() : 현재 윈도우창을 닫습니다.
// CloseWin($msg) : $msg를 경고메시지로 출력하고 닫습니다.
// CloseWin($msg,1) :
// $msg를 경고메시지로 출력하고 원래 자신을 연 부모윈도우를
// Reload시킵니다. (바뀐 내용을 적용시킬때 사용)

function CloseWin($msg = “”, $refresh = 0)
{
echo “
“;
}

// GoTo($url) : 현재 페이지를 $url로 대치시킵니다.
// 현재 페이지는 history상에 남지 않습니다.
// (입력받은 정보를 DB등에 저장하고 난 뒤에 다른 페이지로 이동할때
// 저장하는 페이지가 히스토리에 남으면 “뒤로”를 눌렀을 때 좋지
// 않은 일이 발생하겠죠…)
// GoTo($url, $msg) : $msg를 경고메시지로 출력하고 이동합니다.
// GoTo($url, $msg, $target) : $msg를 경고메시지로 출력하고
// $target에 해당하는 프레임을 $url로 대치시킵니다.

function GoTo($url, $msg = “”, $target = “”)
{
echo “
“;
}

// Alert($msg) : 단순히 $msg를 경고메시지로 출력합니다.
// (확인을 누르면 계속 그 뒤의 처리를 계속합니다)

function Alert($msg)
{
echo “
“;
}

// FreadAll($filename) : $filename에 해당하는 파일내용 전체를 읽어서
// 문자열로 리턴해줍니다. (비슷한 readfile()이나 file()함수가 있지만
// readfile()은 무조건 표준출력으로 가고 file()은 각 행이 배열로
// 읽혀지기 때문에 전체파일을 지정한 변수로 읽어들일 때는 이 함수를
// 사용합니다.)

function FreadAll($filename)
{
if( !file_exists($filename) )
return “”;

$fp = fopen($filename, “r”);
$text = fread($fp, filesize($filename));
fclose($fp);

return $text;
}

// FwriteAll($filename, $text) : FreadAll()과 반대로 $text 문자열
// 전체를 $filename으로 된 파일로 저장합니다.

function FwriteAll($filename, $text)
{
$fp = fopen($filename, “w”);
$ret = fwrite($fp, $text);
fclose($fp);

return $ret;
}

// html_format($text) : 본문의 일부로 나오는 내용이 전체 html에
// 영향을 미치는 것을 막거나 특정태그의 사용을 방지하기 위해
// 화면에 출력하기 전에 태그를 무효화시킬 때 사용하는 함수입니다.
// (Daum에서 특정태그를 방지하는 것을 보고 만들어봤습니다.)
// 기본적으로 nl2br()로 행구분을
로 처리합니다.
// html_format($text, 0) : nl2br()처리만 하지 않습니다.

function html_format($text, $break = 1)
{
$text = stripslashes($text);
$text = ereg_replace(“ $text = ereg_replace(“?>”, “?>”, $text);
$text = eregi_replace(“ $text = eregi_replace(“ $text = eregi_replace(“ $text = eregi_replace(“ $text = eregi_replace(“ $text = eregi_replace(“ $text = eregi_replace(“ $text = eregi_replace(“ $text = eregi_replace(“ $text = eregi_replace(“ $text = eregi_replace(“ $text = eregi_replace(“ $text = eregi_replace(“ $text = eregi_replace(“ $text = eregi_replace(“ $text = eregi_replace(“ $text = eregi_replace(“ // ereg_replace(” “,” “, $text)처럼 사용하게 되면
// 브라우저에서 자동 행구분을 못해주기 때문에 문자열의 길이만큼
// 표의 폭이 늘어나거나 하는 부작용이 생길 수 있습니다.
// 이 부분은 필요에 따라 사용하시면 됩니다.
$text = ereg_replace(” “,” “,$text);

if( $break )
$text = nl2br($text);

return $text;
}

// LongCut($s, $l) : 문자열 $s를 $l만큼 잘라내고 “…”을 뒤에
// 붙여줍니다. 게시판 리스트 등에서 긴 문자열을 짧게 보여줄 때
// 사용합니다. 무조건 잘라내면 한글이 중간에 걸렸을 때 “?”로
// 처리되기 때문에 뒤에서부터 스캔해서 잘리지 않도록 처리했습니다.

function LongCut($s, $l)
{
if( strlen($s) <= ($l+3) )
return $s;

if( ord($s[$l-1]) > 127 )
{
$nc = 2;
while( ord($s[$l-$nc]) > 127 )
$nc++;
$l -= !($nc & 1);
}

return substr($s, 0, $l) . “…”;
}

// ParseSession($sess) : $sess로 받은 세션값(서버상에 저장되는 파일)
// 을 name => value로 이루어진 array로 리턴합니다.
// 회원인증을 세션으로 처리한다고 해도 현재 접속해 있는 회원들이
// 누가 있는지 알아보려고 하면 서버에 저장되어 있는 세션파일들을
// 직접 읽어들여 처리하지 않으면 알 길이 없어서 세션파일을 분석한
// 끝에 만들어봤습니다. 왜 이 함수가 제공되지 않는지 궁금하군요.
// 만약 $sess가 ‘id|s:5:”guest”;name|s:6:”방문자”;’ 이렇게 돼있을때
// $buf = ParseSession($sess);
// => $buf[id] = “guest”; $buf[name] = “방문자”; 이렇게 됩니다.

function ParseSession($sess)
{
$p = explode(“;”, $sess);
$m = count($p);

for($i=0; $i < ($m-1); $i++)
{
for($k=$i; !strstr($p[$i+1], “|”) && (($i+1) < $m); $i++)
$p[$k] .= “;” . $p[$i+1];

$t[] = $p[$k];
}

$n = count($t);

for($i=0; $i < $n; $i++)
{
$t1 = explode(“|”, $t[$i]);
$t2 = explode(“:”, $t1[1]);
$buf[$t1[0]] = substr($t2[2], 1, $t2[1]);
}

return $buf;
}

// GetExtension($filename) : $filename에서 마지막 “.”이후의
// 확장자만 잘라서 소문자로 리턴한다.

function GetExtension($filename)
{
$filename = trim($filename);
$right = strrchr($filename, “.”);

return strtolower(substr($right,1));
}

// GetOtherName($filename) : $filename이 “name.ext” 일 경우
// “name1.ext”를 리턴해줍니다. 업로드된 파일을 저장하려고 할 때
// 동일한 파일이 있을 경우 이런 식으로 이름부분에만 1을 붙여서
// 저장함으로써 확장자가 그대로 적용되도록 할 수 있습니다.

function GetOtherName($filename)
{
$filename = trim($filename);
$l_all = strlen($filename);
$right = strrchr($filename, “.”);
$l_left = $l_all – strlen($right);

return substr($filename,0,$l_left) . “1” . $right;
}

} // End of if( !$__FUNC_PHP__ )

실행 속도 체크하기

아래 소스는 기본적으로 적수네 게시판 소스에서 속도 체크 알고리즘만
뽑아서 정리한 것임
아래 소스를 그냥 실행하면 0.00 이라고 출력이 되니
꼭 게시판등의 Mysql과 연동하는 소스와 같이 쓰기 바랍니다.

//맨첨에 씀//
$c_time[] = microtime();
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;
}

//Sql문을 다 샐행하고 그담에 씀//
$c_time[] = microtime();
$time = get_microtime($c_time[0], $c_time[1]);
echo “$time”;
?>