내정보

주문조회.관리

커뮤니티

솔루션 관련 게시판
 


 

테마형 자유게시판

 


작성자
작성일 2014/07/25 08:41
분 류 PHP
ㆍ조회: 2558      
IP: 112.xxx.59
PHP 문법
PHP 기본문법 1 (변수, 연산자)
0. 시작
- php의 시작과 끝은 <?php 스크립트 ?> 의 형태이다
- php내에서 html을 사용하려면 echo "HTML코드"; 의 형식으로 사용한다
- 문장의 끝은 무조건 ;로 끝난다
- 주석은 //(한줄주석), /* 범위주석 */을 사용한다


1. 변수 선언
php는 변수 선언시 형태를 따로 지정하지 않아도 되며 자동으로 형변환을 해주게 된다


- 문자, 숫자형
$var = "값";

ex)
$var = "test"; //문자열 test
$var = 10; //정수형 10


- 배열형
$var = array([key] => "값" [, [key] => "값"]);
$var[0] = "값1";
$var[1] = "값2";

ex)
$var = array("a" => "test1", "b" => "test2"); //배열
==> $var['a']의 값은 'test1', $var['b']의 값은 'test2'


- 참, 거짓
$var = TRUE; //참
$var = FALSE; //거짓


- 상수 정의하기
상수명은 대소문자를 구분한다
define("상수명", "상수 값");

ex)
define("USER", "joohk10");
echo USER; //"joohk10" 출력


2. 연산자
- 대입연산
=

ex)
$var = 2; // 2를 $var에 대입


- 사칙연산
+, -, *, /
$var = 1 + 2; // 1+2를 $var에 대입
$var -= 3; // $var에서 3을 뺌


- 비교연산
==, !=, <>, >, <. <=, >=
$var1 == $var2 // $var1과 $var2가 같으면 참
$var1 != $var2 // $var1과 $var2가 다르면 참(<>와 동일)
$var1 > $var2 // $var1이 $var2보다 크면 참


- 오류연산
@
@file('존재하지않는파일'); //에러 발생시 에러출력 안함


- 실행연산
` (Esc 아래 있는거)
$output = `ls -al`; //ls -al명령의 결과가 저장됨


- 증감, 논리 연산
++, --, and, or, xor, !, &&, ||
$var1++, $var1-- //$var1값이 1씩 증감
$var1 xor $var2 //$var1, $var2 둘중 하나만 참일때 참
$var1 or $var2 //$var1, $var2 둘중 하나이상 참이면 참 (|| 와 같음)
$var1 and $var2 //$var1, $var2 둘다 참이면 참 (&& 와 같음)
!$var1 //$var1가 참이면 거짓, 거짓이면 참
 
PHP 기본문법 2 (조건문)
3. 제어문 (조건문)

1) if ~ else if ~ else 구문
if(조건문){
실행문
}else if(조건문){
실행문
}else{
실행문
}


- 괄호 안의 조건문이 참일때 중괄호에 둘러쌓인 실행문이 실행된다 이때 실행문이 한문장일 경우 중괄호를 생략해도 된다
- if는 홀로 사용이 가능하며 else if와 else는 if먼저 사용후 따라나와야 한다 이때 else는 if, else if가 모두 거짓일때 실행된다
- 조건은 순서대로 실행되며 참인 조건이 나오면 해당 실행문 실행후 if ~ else 구문은 종료된다


ex)
<?
$var = X; //임의의 값
if($var == 1){
echo "값은 1";
}else if($var > 5){
echo "값은 5보다 크다";
}else if($var < 1){
echo "값은 1보다 작다";
}else{
echo "값은 1보다 크고 5보다 작다";
}
?>


2. switch ~ case 구문
switch(값){
case 값:
실행문
break;
default 값:
실행문
break;
}

- 괄호 안의 값이 case 옆에 있는 값과 같을때 해당 구문을 실행하며 break를 만나기 전까지 순차적으로 계속 실행된다
- case값은 여러개가 들어갈수 있으며 default가 없어도 실행은 된다
- 문자열끼리의 비교도 가능하다

ex)
<?
$var = X; //임의의 값
switch($var){
case 0:
echo "var값은 0";
break;
case 1:
case 2:
echo "var값은 1 또는 2";
break;
default:
echo "var값은 0, 1, 2가 아니다";
break;
}
?>
 
PHP 기본문법 3 (반복문)
4. 제어문 (반복문)


1) while 문
while(조건문){
실행문
}


- 실행전 조건문이 참일때 while안의 실행문을 수행하게 된다
- 만약 실행문에서 조건문에 영향을 주지 않아 조건문이 무조건 참이 되게 한다면 무한루프에 빠지게 된다


ex)
<?
$i = 0;
while($i < 5){
echo $i;
$i++; // 만약 없으면 조건문은 계속 참이되고 그로인해 무한히 반복된다
}
//$i = 0 일때 결과 0 1 2 3 4
//$i = 5 일때 결과 (없음)
?>


2) do ~ while 문
do{
실행문
}while(조건문);


- 무조건 한번은 실행하며 실행후 조건문이 참일때 실행문을 다시 수행한다
- while과 마찬가지로 실행문에서 조건문이 거짓의 결과가 나오도록 하여야 한다


ex)
<?
$i = 0;
do{
echo $i;
$i++;
}while($i < 5);
//$i = 0 일때 결과 0 1 2 3 4
//$i = 10 일때 결과 10
?>


3) for 문
for(시작문 ; 조건식 ; 증감식){
실행문
}


- 처음 시작시 시작문을 실행한다
- 반복할때마다 조건식을 검사하여 참일때 실행문을 수행한다
- 실행문의 종료시 증감식이 실행된다
- 시작문 -> 조건식(참) -> 실행문 -> 증감식 -> 조건식(참) -> 실행문 -> 증감식 -> 조건식(거짓) -> 끝


ex)
<?
for($i = 0 ; $i < 5 ; $i++){
echo $i;
}
//결과 0 1 2 3 4
?>


4) break, continue 문


- break와 continue는 반복문, switch 문에서 사용할수 있다
- 프로그램 수행중 break를 만나면 해당 구문에서 빠져나오게 된다
- 프로그램 수행중 continue를 만나면 다음 실행문은 무시하고 구문의 조건식을 검사하는 부분으로 이동한다

ex)
<?
for($i = 0 ; $i < 5 ; $i++){
if($i == 3)
break;
echo $i;
}
//결과 0 1 2
//break가 continue일때 0 1 2 4
?>

 
PHP 기본문법 4 (함수)
5. 함수

1) 사용자 정의 함수
function 함수명(인자1, 인자2, ...){
실행 내용
return 반환값;
}


- 인자, 반환값, 내용은 없어도 함수선언에 상관없다
- 함수명은 변수선언과 마찬가지로 영문자, _ 로 시작한다
- 함수에서 변경되는 변수들이 함수 밖에서도 변경되기 위해서는 인자앞에 &를 붙여준다


ex)
<?
function hello_world(){
echo "hello_world";
}
function add($var1, $var2){
return $var1 + $var2;
}
function change($var){
$var = 10;
}
function change2($var){
$var = 10;
}

echo hello_world(); // hello_world 출력
echo add(10, 20); // 30 출력

$var = add(10, 20);
echo $var; // 30 출력

$var = 5;
change($var);
echo $var; // 5출력

$var = 5;
change2($var);
echo $var; // 10출력
?>


2) 내장 함수

- php 에서 기본적으로 제공하는 함수들이다
- 함수 리스트는 (http://students.kiv.zcu.cz/doc/php5/manual/kr/funcref.php.html) 에 존재한다
- 구글, 네이버등에서 검색하여 사용하자
 
PHP 기본문법 5 (정규표현식)
6. 정규표현식


1) eregi 함수

eregi("검사할문자", "검사대상문자열");


- 검사대상문자열에 검사할 문자가 있으면 TRUE(1),
검사대상문자열에 검사할 문자가 없으면 FALSE(null) 가 결과로 나오게 된다
- ereg함수는 대소문자 구별을하며 eregi함수는 대소문자 구별을 하지 않는다


ex)
<?
$str = "a";
echo eregi($str, "abcd"); // TRUE
echo eregi($str, "ABCD"); // TRUE
echo eregi($str, "wxyz"); // FALSE
echo ereg($str, "abcd"); // TRUE
echo ereg($str, "ABCD"); // FALSE
echo ereg($str, "wxyz"); // FALSE
?>


2) 정규표현식 ^ / $ / . / * / + / ?

연산자

설명

^

문자열의 시작을 의미

$

문자열의 끝을 의미

.

임의의 한 문자

*

바로 앞의 문자가 없거나 하나 이상

+

바로 앞의 문자가 하나이상

?

바로 앞의 한 문자가 없거나 있음



ex)
^a ==> a로 시작하는 모든 문자열 (a, ab, abc, abcd, ....)
a$ ==> a로 끝나는 모든 문자열 (a, ba, cba, ....)
a.b ==> a와 b사이에 한 문자가 있는 문자열 (acb, zajb, aaibl, ....)
a* ==> a가 없거나 하나 이상 (모두참)
a*b ==> a가 없거나 하나 이상이며 b가 있음 (b, ab, addddddb, ....)
a+ ==> a가 한글자 이상 (a, bbbba, bbba, bbbaaabbbbb, ....)
^ba?c ==> a가 없거나 있고 b로 시작하며 c를 포함 (bac, bc, bbbaccc, ....)
※ bbbaeccc는 b와c사이에 a외의 값이 있으면 거짓


3) 정규표현식 () / {} / [] / -

연산자

설명

( )

문자열의 그룹 지정

{min, max}

바로 앞 문자의 반복횟수 지정

[ ]

[ ]안의 문자중 하나이상

A-Z

A ~ Z 사이의 문자



ex)
(ab) ==> 문자열중 ab가 있음 (ab, abb, cab, cabd, ....)
(ab){1,2} ==> ab가 1개이상 2개 이하인 문자열 (ab, abab, ....)
[abcde] ==> abcde 중 하나이상의 문자 (wxyaz, wxyadz, ....)
[a-z] ==> a ~ z중 하나이상의 문자 (012a, a, Aa, ....)
[:Alnum:] ==> 알파벳과 숫자를 의미
[:Alpha:] ==> 알파벳을 의미
[:digit:] ==> 숫자의미
[:Xdigit:] ==> 16진수를 의미


4)예제
- 숫자
^(-?[1-9][0-9]*)$ (정수)
^[0-9]+(.[0-9]+)?$ (소수)

- e-mail
^[_0-9a-zA-Z-]+(.[_0-9a-zA-Z]+)*@[0-9a-zA-Z-]+(.[0-9a-zA-Z-]+)*$

- 주민번호
^[0-9]{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])-[1-4][0-9]{6}$

- 한글
^[ㄱ-ㅎ가-힣]$
 

PHP 기본문법 6 (세션 & 쿠키)
7. 세션 & 쿠키

1) 쿠키
클라이언트에 웹페이지의 정보를 담은 임시파일을 쿠키라 한다
이후 데이터는 웹페이지를 불러올때마다 쿠키의 정보가 함께 전송되어진다


- 생성
<?
setcookie('변수명', '변수값', '만료시간', '디렉토리, '도메인');
?>


만료시간, 디렉토리, 도메인이 없어도 쿠키는 생성된다
만료시간 : 값은 보통 time()+유지할시간(초) 의 형태로 사용한다 (없을시 브라우저 종료에 삭제)
디렉토리 : 쿠키가 적용되는 디렉토리 (없을시 모든페이지)
도메인 : 쿠키가 적용되는 도메인 (없으면 현재 도메인)


- 조회
<?
$_COOKIE['변수명'];
?>


- 삭제
<?
setcookie('변수명', ''); //값에 아무것도 넣어주지 않는다
?>


2) 세션
서버에 웹페이지에서 필요한 정보를 저장하는 것을 세션이라 한다
세션의 데이터는 서버에 저장되고 웹페이지에는 세션의 키값이 쿠키에 담겨 보내진다
세션을 사용하는 페이지는 항상 페이지 맨앞에 SESSION_START(); 를 넣어주어야 한다


- 생성, 수정
<?
SESSION_START();
$_SESSION['변수명'] = "값";
?>


- 조회
<?
SESSION_START();
echo $_SESSION['변수명'];
?>

- 삭제
<?
SESSION_START();
SESSION_UNSET("변수명"); //변수명에 해당하는 값 삭제
SESSION_DESTROY(); //현재있는 모든 세션 삭제
?>
   

   
번호     글 제 목 작성일 조회
80 테두리없는 팝업창 2018/09/18 (화) 1647
79 한국의 주요도시 위도, 경도 2018/09/18 (화) 1207
78 MySQL 백업과 복구 : mysqldump, mysqladmin 2018/09/18 (화) 1094
77 구글이 말하는 SEO, 검색엔진최적화 방법 6가지 2018/09/18 (화) 2024
76 div 가운데 정렬 2018/09/18 (화) 1036
75 부트스트랩 메뉴 2018/01/02 (화) 1364
74 bootstap button menu1 2018/01/02 (화) 2376
73 아톰 에디터 단축키 모음 2017/11/23 (목) 2331
72 PHP 문법 2014/07/25 (금) 2558
71 메타태그 속성 정리 2014/01/31 (금) 2457
70 border-collapse는 테이블 또는 셀의 테두리선 표시방법을 지정하는 속성입니다. 2013/10/17 (목) 2191
69 지도.좌표.주소 만드는 구글지도 2013/10/09 (수) 2508
68 css 세로메뉴(menu) 2013/10/02 (수) 3179
67 css with jquery 메뉴 2013/09/10 (화) 1957
66 css 메뉴 2013/09/10 (화) 2011
65 Fluid Navigation CSS & jQuery(메뉴) 2013/09/10 (화) 2124
64 CSS Vertical Menu 2013/08/04 (일) 2427
63 Navbar ...메뉴 2013/07/31 (수) 2127
62 구글, 바이두 등 해외 검색엔진 사이트등록, 중요한 것은? 2013/07/21 (일) 2385
61 InfoWindow 자동 띄우기 - v3 2013/07/19 (금) 2880
60 Google maps V2 - sidebar list + category + color icons.........2 2013/07/19 (금) 2325
59 구글지도에 지명이름 추가 (텍스트 형) 2013/07/15 (월) 2313
58 Google maps V3 - sidebar list + category + color icons.........3 2013/07/15 (월) 2963
57 text label google maps v3 2013/07/14 (일) 2469
56 구글지도 좌표 찾기 2013/07/14 (일) 2829
55 BING 검색관련 아이피 모음 2013/06/25 (화) 1955
54 구글 좌표(위도. 경도)값을 마우스 클릭으로 찾을 수 있습니다. 2013/06/13 (목) 4667
53 여러 검색엔진에 사이트맵 제출하기 2013/06/11 (화) 2562
52 Google의 인덱스나 랭킹 등에 관한 10의 오해를 Google 공식 2013/06/11 (화) 2279
51 야후/빙에서 인덱싱/크롤링이 안되는 문제 해결 2013/06/11 (화) 2331
123

 

 

 

장바구니 0
상품보관함 0
오늘본목록 0
계산기
포털검색
회사소개 |  광고문의 |  제휴문의 |  이용약관 |  청소년 보호정책 |  개인정보 취급방침 |  고객센터 |  사이트맵
주소 : 서울특별시 성동구 용답25길 15-1(용답동) | 상호 : 올포소프트(allfor.kr) | 대표자:김영길 | 업태 : 서비스.소매 | 종목 : 홈페이지제작. 솔루션개발. 통신판매 E-MAIL : admin@allfor.kr | ☎ : 070-8116-9964 | 010-5711-7987 | 사업자등록번호 : 263-46-00104 | 개인정보관리 책임자 : 김영길