PHP
2011.12.13 03:27
배열 | Arrary | $변수[숫자 또는 문자열]=값 $arrary[] = 42; $arrary[] = 73; $arrary[] = 100; $arrary[0] = 37; $arrary[1] = 25; $fruit["A"] = "감"; $fruit["B"] = "배"; |
arrary[0]에 42 []에 Index를 입력하지 않으면 Max Index +1 로 한다. arrary[0]에 다시 37가 들어감. |
|
count() | count($arrary); | $arrary 의 배열 수 출력 | ||
배열값 손쉽게 등록하기 | $변수1 = 변수2("값1", "값2","값3"); $변수1[0] 에는 "값1" $변수1[1] 에는 "값2" $변수1[2] 에는 "값3" 이 들어감. $hobby = array("우표수집", "등산", "낚씨") |
배열값 전달 예제 function x($a,$b) { $div = intval($a/$b); $rest = $a%$b; return array($div, $rest); } list ($c, $d) = x(30, 7); //배열값을 매개변수에 할당하는 내장함수임. echo ("몫 = ".$c."<br>"); echo ("나머지 = ".$d."<br>"); |
||
문자 Index 도 가능함 | $a["name"] = "홍길동" ; | |||
n==>"값" | 배열의 위치를 n으로 이동함. | |||
next(배열변수) | 현재의 배열에서 한단계 앞으로 포인터를 이동함. | |||
prev(배열변수) | 현재의 배열에서 한단계 뒤로 포인터를 이동함. | |||
current(배열변수) | 현재 포인터가 위치의 값을 출력함. | |||
reset(배열변수) | 포인터의 위치를 0으로 setting | |||
$flower = arrary("장미", "무궁화", "진달래", 2==> "해바라기", "튤립"); echo current($flower); next($flower); |
[2]에 "진달래" 대신 "해바라기"가 저장됨. "장미"가 출력됨. 포인터가 다음으로 이동되고 출력하면 "무궁화"가 출력됨. |
|||
연관배열 |
연관배열 값 할당 $배열변수 = arrary("문자열키"<=="값"); while(list($key, $value)=each($flower)) |
flower 배열 변수의 각 Index 별로 값이 동일 하면 |
||
다차원배열 | ||||
함수 | 전역변수 선언 | global $data1; | ||
정적변수 | <? function myfunc() { static $a = 0; echo "$a <BR>"; $a++; } for ($k = 0; $k <10; $k++) { myfunc(); } ?> |
함수내에서 선언하더라도 함수를 종료하더라도 그대로 유지된다 즉 함수 바깥에서도 함수내의 값을 그대로 사용가능하다. $a static으로 한번 선언시 0 으로 초기화 되고 그 후에는 초기화 되지 않는다. |
||
참조에 의한 인수 전달하기 | <? function a(&$a_val) { $a_val .= "(aaaa)"; } $a_name = "AAA"; a($a_name); echo ("a".$a_name."<br>"); ?> <? function a($a_val) { $a_val .= "(aaaa)"; } $a_name = "AAA"; a(&$a_name); echo ("a".$a_name."<br>"); ?> |
&의 위치를 변경해도 동일한 결과임 |
||
HTML과 PHP 프로그램간의 데이타교환 |
<from > 태그의 기본구조와 입력 양식 |
<form method = "" action = "" enctype = "" target = ""> |
.action = "URL" ==> 처리할 URL 입력 .method = get or method = post ==> get : 주소표시줄에 표시가 전달된다. URL 뒤에 변수명과 변수에 저장된 데이터를 덧붙여서 전송하는 방식 , 적은 data 전달 방식 Post : 내부적인 환경변술 전달되는 방식 .enctype = "MIMETYPE" ==> method 가 post 일 때 전송되는 폼의 형식을 지정함 기본값은 "application/c-www-form-urlencoded" <input type = "file"> 일 경우 "multipart/form-data" 로 해야함 .target ==> 프로그램의 출력을 보여줄 창의 이름을 지칭함. ( _blank / _self / _parent / _top) |
|
<input> tag <input type = "text" name = "youname" value = "이이이" > <input type = "password"> <input type = "checkbox"> <input type = "radio"> <input type = "reset"> <input type = "submit"> |
youname 의 기본값 : "이이이" 버튼생성 버튼생성 |
|||
<form> 에서 입력한 값 post, get방식으로 php에서 받기 |
<? php $data1 = $_POST["name"]; $data2 = $_POST["pass"]; $data3 = $_POST["memo"]; ?> <? php $data1 = $_GET["name"]; $data2 = $_GET["pass"]; $data3 = $_GET["memo"]; ?> |
$_POST[] : form에서 post 방식으로 작성한 변수값을 php에서 받는다. $data1 = $_POST[name] 방식 대신 바로 $data1 = $name으로 해도 되나, 이렇게 할 경우 반드시 php.ini 의 register_globals = on 으로 되어 있어야 한다. $_GET[] : form에서 get 방식으로 작성한 변수값을 php에서 받는다. ==> form 에서 입력한 값을 php에 넘길때 url 옆에 변수를 달아서 넘긴다.즉 ?name = ….. &pass=111 으로 |
||
<input type = "radio" 라디오 버튼 |
<input type = "radio" name = "이름" value = "식별이름" checked onBlur = "func1" onClick = "func2" onFocus = "func3" > |
|||
<input type = "checkbox" 체크박스 |
<input type = "checkbox" name = "이름" value = "식별이름" checked onBlur = "func1" onClick = "func2" onFocus = "func3" > |
선택했을 때 넘겨줄 값 설정 |
||
<SELECT NAME = "myselet"> LIST 선택 박스 |
<form method = "post" action = "3-2-8.php"> 학력 : < SELECT NAME = "myselect1"> <option value ="1"> 초등학교졸업 <option value ="2" selected>고등학교졸업 </select><br> <input type = "submit" value = "출력하기"> </form> 3-2-8.php 에서는 <?php $data1 = $_POST[ "myselect1"]; echo("선택된항목: $data1 <br>"); ?> |
value 를 추가하면 $data1에 2가 value 가 추가되지 않으면 $data1에 고등학교졸업이 나타난다. |
||
숨겨진 Data 보내기 <input type = "hidden" |
<input type = "hidden" name = "pword" value = "sori98"> <br> | |||
submit 버튼을 이미지 버튼으로 <input type ="image" src = "submit.gif"> |
<form method = "post" action = "3-2-10.php"> <input type = "image" src = "submit.gif"> </form> |
|||
file upload <input type = "file" name = "upload"> <br> |
<HTML> <HEAD> <TITLE> New Document </TITLE> </HEAD> <BODY> <form method = "post" action = "file_up_php.php" enctype = "multipart/form-data"> <input type = file name = "upload"><br> <input type = "submit" value = "전송"> </form> </BODY> </HTML> 3-2-13.php 에서는 <? if(copy("$upload", "$upload_name")) { echo "파일이 성공적으로 업로드 되었습니다."."<p>" ; } else { echo "파일이 업로드 실패!!"."<p>" ; } ?> |
파일을 전송할 때 함께 전달되는 값 : $upload : 파일의 내용이 저장된 임시파일명 $upload_name : 파일의 이름 $upload_size :파일의 크기(byte) $upload_type : 파일의 MIME 타입 copy() 함수는 image/$upload에 로 복사한다. |
||
날짜/시간 함수 | date("인수") | a | am 또는 pm | |
A | AM 또는 PM | |||
d | 오늘 날짜를 표시 01 ~ 31 | |||
D | 요일을 영문으로 표시 Mon ~ Sun | |||
F | 달을 영문으로 표시. January ~ December | |||
h | 시간을 12시간제로 표시. 01 ~ 12 | |||
H | 시간을 24시간제로 표시. 00 ~ 23 | |||
g | 시간을 12 시간제로 표시. 1~12 | |||
G | 시간을 24 시간제로 표시. 0~23 | |||
i | 현재분을 표시. 00 ~ 59 | |||
j | 오늘 날짜를 표시1~31 | |||
l (소문자L) | 오늘의 요일을 영문으로 표시(Monday ~ Sunday) | |||
m | 오늘 달을 숫자로 표시. 01 ~ 12 | |||
n | 오늘 달을 숫자로 표시. 1 ~ 12 | |||
M | 오늘의 달을 영문 간략 문자로 표시. Jan | |||
s | 현재초를 표시. 00 ~ 59 | |||
t | 이번달의 마지말 날짜를 표시. | |||
U | 기준시점(GMT 1970년 1월 1일 00:00:00)부터 지난시간을 표시 | |||
w | 오늘 요일을 숫자로 표시 (0: 일요일, 6:토요일) | |||
Y | 연도를 4자리로 표시 (2009) | |||
y | 연도를 2자리로 표시 (2009년을 09로 표시함) | |||
z | 올해 1월 1일 부터 지난날을 표시. 0 ~ 365 | |||
실시간으로 현재 시간 표시하기 | <? $hour = date("H"); $min = date("I"); $time = date("s"); echo " 현재시간".$hour."시".$min."분".$time."초 입니다." echo "<meta http-equiv = 'refresh' content = '1'>"; ?> |
echo "<meta http-equiv = 'refresh' content = '1'>"; ==> 1초마다 현재 문서 재 Load 함. 형식은 : <meta http-equiv = 'refresh' content = '시간; URL = 파일이름 '>" 이고. URL에 입력한 문서를 content에 입력한 시간마다 refresh한다. |
||
시간을 계산해주는 함수 | time() mktime(시간,분,초, 월, 일, 년) -------------------------------------- 태어난 시간부터 지나간 시간 계산하기 -------------------------------------- <? $a = time(); $b = mktime(7,41,15, 9, 20, 1982); $c= $a - $b; $d=intval($c/86400); $e=intval(($c%86400) / 3600); $f=intval((($c%86400) % 3600) /60); $g=intval((($c%86400) % 3600) %60); echo $d."-".$e."-".$f."-".$g ; ?> |
time, mktime --> 1970년 1월 1일 0시 0분 0초 시점부터 현재시간까지의 초를 계산 단 mktime 은 원하는 시간을 주고 그 후 부터 지금까지를 계산한다. 1970년 1월 1일 0시 0분 0초 시점부터 현재까지의 time get 1970년 1월 1일 0시 0분 0초 시점부터1982.9.20 7:41:15 까지time get 초를 가지고 날짜 계산 날짜를 계산하고 남는것으로 시간 계산 날짜와 시간을 계산하고 남는 것으로 분 계산 날짜와 시간을 계산하고 남는 것으로 초 계산 |
||
마이크로 초를 계산하는 함수 | $변수 = microtime(); | |||
날짜 이상유무를 Check 하는 함수 | $변수 = checkdate(월,일,년); | $변수에 true or false return 한다. | ||
문자열함수 | 문자열 출력함수 | echo(); print(); ex) echo("aaa"); echo "aaa"; print("bbb"); print "bbb"; |
||
형식이 있는 출력함수 | printf(형식지정어, 변수1, 변수2…) : 자체 출력 가능 sprintf(형식지정어, 변수1, 변수2…) : 출력가능한 형식만 지정가능 형식지정어 : %:값이 출력할 곳에 표시 b:정수 취급하고 2진수 표현 c:정수 취급하고, ASCII 값에 해당하는 문자로 표현 d:정수 취급하고, 부호 있는 10진수로 표현 u:정수 취급하고, 부호 없는 10진수로 표현 f:float로 취급하고 실수로 표현 o:정수로 취급하고 8진수로 표현 s:문자열로 취급하고 표현 x:정수로 취급하고 16진수(소문자)표현 X:정수로 취급하고 16진수(대문자)표현 ex) <? $year=date("Y"); $mon=date("m"); $day=date("j"); printf("%04d-%02d-%02d", $year, $mon, $day); ?> <? $n1 = 87.176; $n2 = 54.315; $n = $n1 + $n2; $a = sprintf("\%0.2f", $n); $b = sprintf("\%0.3f", $n1 - $n2); echo $a ." ". $b; ?> |
%: 인쇄할 위치 지정, 4: 4자리, d: Ascii type 정수로 표현 0: 자리가 부족할 경우 앞에 0으로 채움 소숫점이하 2자리의 실수형으로 $a에 저장하라. |
||
Enter 를 줄바꿈 BR로 변경 | $b=nl2br($a); | $a에 Enter 가 있으면 모두 <br> 로 변경하는 기능 | ||
영문 대.소문자 변경 | strtolower(문자열) | 모두 소문자로 표시 | ||
strtoupper(문자열) | 모두 대문자로 표시 | |||
ucfirst(문자열) | 첫 글자만 대문자로 | |||
ucwords(문자열) | 각 단어 첫글자를 대문자로 | |||
공백을 제거하는 함수 | chop() | 문자열의 뒷부분의 공백 제거 | ||
trim() | 문자열의 앞.뒤 부분 공백 제거 | |||
역슬래시 붙이고, 떼고 | addslashes() | 인용부호 ' 앞에 \ 붙여줌 | ||
stripslashes() | 따음표 앞의 \를 제거한다. | |||
문자열을 잘라주는 함수 | substr() substr(문자열, 자르기 시작할 문자열 배열수, 문자열 길이); ex) substr($a,5); substr($a,5,4); substr($a,-7); |
자르기 시작하는 위치를 왼쪽에서 0,1,2,.. 로 시작하는 배열수로 설정한다. $a의 처음부터 5 byte 자름 $a를 5번째 Byte 부터 4 Byte 자름. $a의 뒤에서 부터 7 byte 자름. |
||
strchr() strchr(문자열, 자르기시작할 문자열) |
자르기 시작하는 문자열의 문자로 위치를 표시한다. | |||
문자열의 길이를 반환하는 함수 | strlen("aaaa") |
|||
문자열을 배열로 만드는 함수 | explode(분할 기준 문자, 문자열) <? $a = "영화감상 사진활영 아이쇼핑" $b = explode(" ", $a); echo $b(0); ?> |
|||
문자열 변경함수 | str_replace("특정문자", "바꿀문자", "임의의 문자열) ereg_replace("특정문자", "바꿀문자", "임의의 문자열) |
임의의 문자열에서 특정문자를 다른문자로 바꾸어 주는 함수 str_replace 와 ereg_replace 는 동일한 기능이나 str_replace가 실행속도 빠름. |
||
태그를 제거하는 함수 | htmlspecialchars(문자열) strip_tags(문자열) |
html tag를 실행하지 않고 바로 출력 html tag를 제거해서 출력함. |
||
문자열을 검색하는 함수 | preg_match(/찾을 문자열/, 검색할 문자열) | 검색할 문자열을 검색하 찾을 문자열을 찾아 존재하면 1, 존재하지 않으면 0 을 return 한다. | ||
접속자의 Web Browser 의 종류 알아오기 | <? $a = getenv(HTTP_USER_AGENT); $b = preg_match("/comptible; MSIE/", $a); ?> |
$b 에 값이 존재하면 WebBrowser는 MS Explorer이다. | ||
문자검색함수 | ereg("찾고자 하는 문자", "임의의문자열"); eregi("찾고자 하는 문자", "임의의문자열"); |
대소문자 구분하여 찾음.존재하면 1, 존재하지 않으면 0 대소문자 구분하지 않고 찾음. 존재하면 1, 존재하지 않으면 0 preg_match 와 동일하게 문자열 검색함. |
||
문자열 비교함수 | strcmp(문자열,문자열) | 두개의 문자열이 같으면 0, 같지않으면 +_1 을 return 함. 1: 첫째 문자열이 더 길면, -1: 두번째 문자열이 더 길면. |
||
문자열을 아스키 코드값으로 | ord("A"); | 문자열 "A"를 Ascii Code 65로 변경함. | ||
아스키 코드값을 문자열로 변경 | chr(65); | Ascii Code 65를 문자 A로 변경함 | ||
배열함수 | 배열값을 정렬하는 함수 | sort(배열변수, 배열방법); 배열방법 : SORT_REGULAR SORT_NUMERIC SORT_STRING ex) $a(0) = "5"; $a(1) = "7"; $a(2) = "1"; sort($a, SORT_REGULAR ); |
||
배열의 개수 구하기 | count(배열변수, COUNT_RECURSIVE); sizeof(배열변수, COUNT_RECURSIVE); |
COUNT_RECURSIVE 을 이용하면 다차원 배열의 경우 최 하단까지를 모두 구해옴. COUNT_RECURSIVE를 빼면, 최종 차원의 배열만 가져옴. |
||
문자열을 배열로 분리하는 함수 | explode(분리문자, 문자열, 분리개수) split(분리문자, 문자열, 분리개수) <? $str = "배/감/포도/바나나-토마토"; $a = explode("/", $str); $b = split("[/.-]", $str); ?> |
둘다 유사, 단 split 는 여러 개의 분리문자 사용가능 split 는 /, - 로 분리함. |
||
배열을 문자열로 만들어줌 | implode(결합문자, 배열) join(결합문자, 배열) <? $a = array("skt", "lgt", "ktf"); $b = implode("*", $a); ?> |
$b에 skt*lgt*ktf 로 저장됨. | ||
배열값을 각 변수에 목록화시킴 | list(변수1, 변수2, …. ) = $a <? $t = "1992/9/207/41/15"; list($year, $month, $day, $hour, $min, $time) = split('/', $t); ?> |
$a 배열변수의 값을 각 변수1, 변수2, .. 에 할당한다. $t에 나열된 값을 split 함수로 각각 분할하고 그 값을 $year, .. 변수에 할당한다. |
||
배열정보를 반환하고 커서를 이동함. | each(배열 또는 배열변수) | 배열정보를 출력할 때는 반드시 print_f()를 사용해야 한다. | ||
reset(배열 또는 배열변수) | 배열의 커서 위치를 초기화함. | |||
next(배열 또는 배열변수) | 커서의 위치를 한단계 이동함. | |||
<? $a = array('ASP', 'JSP', 'PHP'); reset($a); next($a); print_f(each($a)); ?> |
JSP부터 출력 된다. |
|||
변수 및 수학함수 | 변수 Type 관련 함수 | gettype(변수값) | 변수의 종류를 반환합니다. 결과값은 boolean, interger, double, string, array, object, resource, NULL: 값이 없음/ PHP4이상에서 지원함, userfunction: 사용자 정의 / PHP3에서만 동작, unknown : 알수없는 형식 |
|
settype(변수값, 변경할 변수형) | ||||
intval() | 변수값을 정수형으로 변환 | |||
doublelevel() | 변수값을 실수형으로 변환 | |||
strval() | 변수값을 문자형으로 변환 | |||
isset() | 변수가 존재하는지 확인 | |||
unset() | 변수를 삭제함. | |||
empty() | 변수값이 존재하면 참, 존재하지 않으면 거짓. | |||
is_array() | 변수형이 배열인지 확인, 맞으면 1 , 아니면 0 | |||
is_float() | 변수형이 실수인지 확인, 맞으면 1 , 아니면 0 | |||
is_double() | 변수형이 더블인지 확인, 맞으면 1 , 아니면 0 | |||
is_bool() | 변수형이 불인지 확인, 맞으면 1 , 아니면 0 | |||
is_integer() | 변수형이 정수인지 확인, 맞으면 1 , 아니면 0 | |||
is_null() | 변수형이 값이 없는지 확인, 맞으면 1 , 아니면 0 | |||
is_numeric() | 변수형이 숫자인지 확인, 맞으면 1 , 아니면 0 | |||
is_object() | 변수형이 객체인지 확인, 맞으면 1 , 아니면 0 | |||
is_resource() | 변수형이 리소스 타입인지 확인, 맞으면 1 , 아니면 0 | |||
is_string() | 변수형이 문자형인지 확인, 맞으면 1 , 아니면 0 | |||
천단위마다 기호표시 | number_format(실수, 표시할 소수점 자리수, 소수점 자리 문자, 천단위 표시 문자) <? $a = 87654.21 echo number_format($a, 2,":", ","). "<br>" ; ?> |
parameter 가 없으면 천단위로" ", 표시 하고 수숫점 이하는 자른다. $a를 소수점 이하 2자리로 표현하고, 소수점 자리에 ":"를 표현하고, 1000 자리수 마다 , 를 표현한다. |
||
절대값으로 만들어 주는 함수 | abs() | |||
소수점 자리를 올림 하는 함수 | ceil(실수) | 소수점 자리를 무조건 올림 처리하고 | ||
floor(실수) | 소수점 자리를 제거하고 | |||
round(실수, 자리수) | 소수점 자리를 지정하는 인수를 받아 반올림 한다. | |||
지수승 계산하는 함수 | pow(계산할 수, 지수승) <? $exp = pow(2,3); ?> |
계산할 수 없을 경우 false 를 return 한다. (계산할 수가 음수이고, 지수승이 실수일 경우 false return ) $exp 결과는 2의 3승 값이다. 즉 8 이다. |
||
제곱근을 계산하는 함수 | sqrt(숫자) | |||
로그계산 | log(숫자, 밑수) log10(숫자) |
|||
파이리턴함수 | pi() M_PI |
pi(), M_PI 둘다 파이를 계산해 주는 함수 임. | ||
16진수를 10진수로 변경 | hexdec() | |||
10진수값을 16진수로 변경 | dechex() | |||
최대값 구하기 | max() <? $z = max($a, $b, $c, 100); ?> |
|||
최소값 구하기 | min() | |||
린덤값 구하기 | rand() 또는 rand(min값,max값) mt_rand()또는 mt_rand(min값,max값) |
rand(), mt_rand() 둘다 난수를 구하나, mt_rand() 가 더 속도가 빠르고 진보적임. 정수 영역 내에서 구함. |
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
34 | XE에 최신 IE 브라우저 호환성보기가 자동 해제되게 하는 메타 태그 | treasurej | 2013.06.15 | 6898 |
33 |
jQuery 속도 향상 Tip!
![]() | treasurej | 2013.03.08 | 2 |
32 | 위젯에서 본문 내용 br태그 적용하여 출력하기 | treasurej | 2013.02.21 | 21171 |
31 |
운영하던 사이트의 도메인 주소를 변경했을때 기존 사이트의 이미지들이 엑박이 뜰때 해결방법
![]() | treasurej | 2013.01.17 | 1 |
30 |
XE 관리자 비번 변경
![]() | treasurej | 2012.06.15 | 3 |
29 |
XE 서버 이전 후 문제점들
![]() | treasurej | 2012.03.15 | 11 |
28 |
XE 서버 이전 하기
![]() | treasurej | 2012.03.15 | 2 |
27 | [CSS] box-shadow | treasurej | 2011.12.23 | 11370 |
26 | [CSS] 한글 글꼴과 영문글꼴의 11px | treasurej | 2011.12.14 | 32168 |
» | PHP | treasurej | 2011.12.13 | 12717 |