이사 완료!!

이사때 도와준 종목이, 효순이 고생 많았어~ 한턱 내마.
앞마당에서 삼겹살 구워주마. ^^
5일 아침 7시 50분에 짐 싣기 시작해서 저녁 7시 정리 및 청소까지 완료!
그제는 커튼 달고, 어제는 전화선 연결, TV케이블 연장..
이제 인터넷만 되면 끝~ 오늘 오전에 교하읍사무소 가서 주민등록 이전하고
이제 파주시민이여.. 하이텔 고양시통신모임 자유로.. 그래도 한번 자유로는
영원한 자유로여.. ㅋㅋㅋ

생일날짜 카운터 (남은 날수혹은 지난 날수 계산)

응용 : 결혼기념일 등 각종 기념일 체크

생일날짜를 계산해 줍니다.

남은 날이 10일이면 -10으로, 지난 날이 10일이면 10으로 값이 얻어집니다.

아래는 제대로 동작하지 않지만 그 방법을 보여주는 PHP스크립트 입니다.
(몇줄 주석처리 되어 있는 부분을 회복시키고 테스트 해보세요.)

// BIRTHDAY Counter
list($today_count,$year)=explode(” “,date(“z Y”));

#############################################
# list($mon,$day)=explode(” “,”10 25 1975”);
# list($mon,$day)=explode(” “,”01 01 1975”);
$day_count=date(“z”,mktime(0,0,0,$mon,$day,$year));

$check_counter=$today_count-$day_count;
# echo “$check_counter
“;
if ($check_counter > 233) {
#올해의 전체 일수를 뺀다.
$year_day=date(“z”,mktime(0,0,0,12,31,$year))+1;
$check_counter-=$year_day;
} elseif ($check_counter < -233) {
#작년의 전체 일수를 더한다.
$year_day=date(“z”,mktime(0,0,0,12,31,$year-1))+1;
$check_counter+=$year_day;
}
# echo “$check_counter
“;
# echo date(“z”,mktime(0,0,0,12,31,$year-2))+1;
?>

이상입니다.

특정일 카운터

$oneday = 86400;
$_today = mktime();

$today = date(“Y년 m월 d일 (l) 입니다”,$_today);

echo “오늘은 “.$today.”

“;

?>



기념일 날짜 계산기

>

처음 만난 날 : ‘ size=2> 월
‘ size=6> 일째 되는 날을 알고 싶어요.


{

$m_today = mktime(“0″,”0″,”0”,$m_month,$m_day,$m_year);
$h_today = ( $_today – $m_today ) / $oneday;
$h_today = round($h_today);
//$h_today++; // +1일 해주어야 한다. 만난날부터 1일이기 때문에;;
echo “오늘부로 만난지 “.$h_today.”일 되었습니다.

“;

if ( ( date(“m”,$_today) == $m_month ) && (date(“d”,$_today) == $m_day ) )
{
$congu_year = date(“Y”,$_today) – $m_year;
echo “오! 축하합니다. 오늘은 만나신지 $congu_year 년 째 되는 날입니다!

“;
}

$_w_day = $w_day * $oneday – $oneday; // 꼭 하루 더 빼줘야 합니다. 왜그런지는 생각해보세요 -ㅅ-
$_w_today = $m_today + $_w_day;
$w_today = date(“Y년 m월 d일 (l)”, $_w_today);
echo “만난지 $w_day 일 되는 날은 $w_today 입니다.”;

}

?>


체크박스(checkbox) 그룹 체킹

이미 그룹 체킹에 대한 많은 해법이 나왔는데, form.elements[‘chk[]’].length 방식을 사용한 것은 없더군요. mozilla1.3, IE5.0에서 테스트되었습니다.

두가지 그룹 체킹 모드를 지원하는데, 하나는 일반적인 [전체선택/전체해제](chkAll)이고, 다른 하나는 [반전](chkRev) 모드입니다.

체크박스가 하나일 경우에 대한 처리까지 포함했습니다. element name이 chk[] 형식이므로 submit 페이지에서는 배열로 받아서 처리하면 됩니다.





Group Check

onClick=”checkGroup(this)” style=”width:1.5em;height:1.5em”/> === 전체선택/전체해제(Check All/Check None)
test….
test….
test….
onClick=”checkGroup(this)” style=”width:1.5em;height:1.5em”/> === 체크한 것 반전(Reverse)


포토샵으로 만든 jpg, png gd로 용량줄이기

.진짜 별거 없지만, gd 에 한번 들어갔다 나오기만하면 용량이 팍 줄어듭니다.
png 의 경우 사용된 색만으로 최적화됩니다. (포토샵에서는 24b 32b 256 색 3가지만 지원)
jpg 도 무슨 압축알고리즘을 쓰는지 화질에 변화없이 용량만 줄어듭니다.

쉘스크립트용으로 하나 만들어서 씁니다.
find . -name “*.png” -exec png2png {} ;

filename : png2png
#!/usr/bin/php
if(!preg_match(‘/^[23]$/’, $_SERVER[‘argc’]))
exit(‘usage : png2png filename alphaoff’);
$im = imagecreatefrompng($_SERVER[‘argv’][1]);
if($_SERVER[‘argc’] == 2)
imagesavealpha($im, 1);
imagepng($im, $_SERVER[‘argv’][1]);
?>

filename : jpg2jpg
#!/usr/bin/php
if($_SERVER[‘argc’] != 2)
exit(‘usage : jpg2jpg filename’);
$im = imagecreatefromjpeg($_SERVER[‘argv’][1]);
imagejpeg($im, $_SERVER[‘argv’][1], 100);
?>
# 수정 : jpeg 함수는 기본이 75 압축이었습니다. 최고 화질 100으로 잡아도 용량은 줄어듭니다.

imagesavealpha() 함수는 여기서 gd로 검색하면 4.3.1 패치 나옵니다.

—————-
용량비교
-rw-r–r– 1 root root 98 2003-03-28 17:41 2d_960018_0_1.png
-rw-r–r– 1 root root 168 2003-03-28 17:41 2d_960018_0_2.png

-rw-rw-rw- 1 user group 1056 Mar 28 17:15 2d_960018_0_1.png
-rw-rw-rw- 1 user group 1105 Mar 28 17:15 2d_960018_0_2.png

(256색과 16색의 비교이긴 하지만, 이렇게 안쓰는 색을 없애줄만한 마땅한 프로그램이 없지요.)