배열에 담긴 모든 값을 urlencode 또는 urldecode 하기

웹사이트 작업을 하다보면 배열에 값을 담아 넘겨줄때가 있다. 한글 데이터도 보내고 url 등도 보내기도 하며 javascript 에서 사용하기 위하여 json 등으로 보내기도 한다. 이럴때 한글이나 url 등과 같은 특수 문자가 들어가는 데이터는 종종 오류를 내거나 한글의 경우는 한글이 깨져서 출력되는 경우가 있다. 그럴경우 urlencode 로 인코딩을 해서 데이터를 보내면 에러 없이 전송이 가능하다. 아래 함수는 배열로 담아둔 모든 값을 rawurlencode로 한번에 인코딩 시키는 것과 반대로 배열에 담아둔 모든 값을 rawurldecode 시키는 함수 이다. 배열에 담겨있지 않는 일반 문자열로 사용이 가능하고 1차 배열만이 아니라 다중배열도 하위 상관 없이 모두 변환 시켜준다. 참고페이지 : http://blog.munilive.com/ex/php/urlencode.php // 인코딩 function str_urlencode($data) { if(is_array($data)) { foreach($data Continue reading 배열에 담긴 모든 값을 urlencode 또는 urldecode 하기

PHP 스크립트 실행시간 체크 하기

페이지 로딩이 너무 느려서 어느 부분에서 느려지는지 체크 하기 위하여 실행시간 체크를 해야 할때가 있다. 그누보드에 있는 함수를 이용해서 간단하게 체크 하도록 한다. 아래 코드를 스크립트 최상단에 입력 <?php // 마이크로 타임을 얻어 계산 형식으로 만듦 function get_microtime() { list($usec, $sec) = explode(” “,microtime()); return ((float)$usec + (float)$sec); } $script_starttime = get_microtime(); ?> 아래 코드를 체크하고 싶은 지점 한단에 삽입하여 어느 부분에서 시간이 오래 걸리는지 확인. <?php $script_runtime = get_microtime() – $script_starttime; echo $script_runtime.”<br />”; ?>   보통 사이트 로딩이 느려지는 경우는 잘못된 쿼리로 인하여 늦어 지는 경우가 대부분이니 실행시간을 체크 해서 수정해주는 것이 좋다. 쿼리를 체크 할때는 explain 명령어로 Continue reading PHP 스크립트 실행시간 체크 하기

[PHP] strtotime에서 “-1 months” 또는 “1 month ago”는 30일 이전이 아니다.

PHP에서 strtotime 함수를 참으로 많이 사용한다. 날짜를 계산 할때 이보다 편한건 없기 때문이라고 할까나. 그런데 오늘 중요한 사실을 알았다. 머 이전부터 메뉴얼에는 나와 있었지만 그걸 오늘 알았다고 해야 하나. 아무튼 중요한 사실은 strtotime(“-1 months”); 하면 무조건 이전 달을 구해 오는건 아니라는 것이다. 이게 무슨 소리냐하면, 우리가 오늘을 기준으로 이전 달을 구하고 싶을 때가 있을 것이다. 이달이 2월이니 이전 달인 1월을 원할 경우. 간단히 아래 처럼 <?php $time = time(); $prev_month = strtotime(“-1 month”, $time); echo date(“Y-m-d”, $prev_month); // 결과값 : 2013-01-25 ?> 오늘이 2013년 02월 25일 이니 결과 값은  2013-01-25일 것이다. 그래 이거 맞다. 정확하게 내가 원하는 값을 가져왔다. – Continue reading [PHP] strtotime에서 “-1 months” 또는 “1 month ago”는 30일 이전이 아니다.

매주의 시작일을 일요일로 정하고 지난주 일요일과 토요일을 구해 오는 함수

<?php $ymd = $_GET[ymd] ? $_GET[ymd] : date(“Y-m-d”); $symd = $_GET[symd] ? $_GET[symd] : date(“Y-m-d”, strtotime(“-1 years”, time())); $page = $_GET[page] ? $_GET[page] : 1; function lastSunToSat($ymd) { $time = strtotime($ymd); $today = date(“Y-m-d”, $time); $tday = date(“w”, $time); if($tday) $Sun = -2; else $Sun = -1; $last[Sun] = strtotime(“{$Sun} Sunday”, $time); $last[Sat] = strtotime(“previous Saturday”, $time); $last[Sun_ymd] = date(“Y-m-d”, $last[Sun]); $last[Sat_ymd] = date(“Y-m-d”, $last[Sat]); return $last; } $last = lastSunToSat($ymd); ?> <form> <input type=”text” name=”ymd” value=”<?=$ymd?>” /> <input type=”submit” value=”전송” /> </form> <? echo “오늘 : “; echo $ymd.”<br />”; ?> 지난주 일요일 : <?=date(“Y-m-d”, $last[Sun]);?><br /> 지난주 토요일 Continue reading 매주의 시작일을 일요일로 정하고 지난주 일요일과 토요일을 구해 오는 함수

php 생년월일로 별자리 구하기

사용자의 생년월일을 입력하여 해당되는 별자리 코드를 리턴 받는 함수 이다.   $Zodiac = Array("Ari"=>"양자리", "Tau"=>"황소자리", "Gem"=>"쌍둥이자리", "Can"=>"게자리", "Leo"=>"사자자리", "Vir"=>"처녀자리", "Lib"=>"천칭자리", "Sco"=>"전갈자리", "Sag"=>"사수자리", "Cap"=>"염소자리", "Aqu"=>"물병자리", "Pis"=>"물고기자리"); function DateToZodiac($date) { $zcode = ""; if(!strtotime($date)) return false; $md = date("md", strtotime($date)); $md = (integer)$md; if($md >= 120 && $md <= 218) { $zcode = "Aqu"; } else if($md >= 219 && $md <= 320) { $zcode = "Pis"; } else if($md >= 321 && $md <= 419) { $zcode = "Ari"; } else if($md >= 420 && $md <= 520) { $zcode = "Tau"; } else if($md >= 521 && $md <= 621) Continue reading php 생년월일로 별자리 구하기