PHP

2011.12.13 03:27

treasurej 조회 수:12316

배열 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() 가 더 속도가 빠르고 진보적임.
정수 영역 내에서 구함.



XE Login