PHP는 서버측에서 실행되는 스크립트 언어

PHP는 서버사이트 스크립트 언어입니다. 제이쿼리와 자바스크립트는 웹 브라우저에 내장된 인터프리터에 의해 해석되는 언어. PHP는 서버에 설치된 PHP에 의해 해석이 되고, 이러한 처리를 가능하게 하는 프로그램은 PHP,JSP, ASP 등이 있으며, 워드프레스, 줌라, XE, 카페24등의 플랫폼 역시 PHP를 기반으로 하고 있다.

PHP 시작하기view
<?php
        //코드 작성
?>
PHP echo문
<?php
       echo 'hello PHP' //코드 작성
?>
PHP 주석
//한줄 /* */ 여러줄

변수는 하나의 데이터를 저장하는 저장소이며, 여러가지 값으로 변할 수 있는 수를 의미

$변수명 = 값;
변수 선언 방법 view
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <?php
            //변수선언
                $birthMonth=4;
            echo "저는 4월에 태어났습니다.<br>";
            echo "저는 $birthMonth 월에 태어났습니다.<br>";
            echo "저는".$birthMonth."월에 태어났습니다.<br>";
           echo "저는 '4'월에 태어났습니다.<br>";
           echo "저는 \"4\"월에 태어났습니다.<br>";
            echo "\$15를 지불하세요<br>";
    ?>
</body>
</html>

연산자는 숫자나 문자열을 이용한 연산을 의미

산술 연산자 view
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   
   <?php
        $num = 20;
        $num2 = 3;
        
        echo "변수 \$num의 값은 {$num} 이며 변수 \$num2의 값은 {$num2} 이다.   <br />";
            
        $plus = $num+$num2;
        $minus = $num - $num2;
        $mul = $num * $num2;
        $division =$num / $num2;
        $rest =$num % $num2;
        
        echo "{$num} 더하기 {$num2} 는 ".$plus."입니다<br>";
        echo "{$num} 빼기 {$num2} 는 ".$minus."입니다<br>";
        echo "{$num} 곱하기 {$num2} 는 ".$mul."입니다<br>";
        echo "{$num} 나누기 {$num2} 는 ".$division."입니다<br>";
        echo "{$num} 나누기{$num2} 의 나머지 값은 ".$rest."입니다<br>";    
    ?>
    
</body>
</html>
복합 연산자 view
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>   
   <?php
        // +=활용
        $num = 10;
        $num +=2;
        echo "[+=사용] 변수 num의 값은 " .$num."입니다 <br>"; 
    
        // -=활용
        $num = 10;
        $num-= 2;
        echo "[-=사용] 변수 num의 값은 " .$num."입니다 <br>"; 
 
        // *=활용
        $num = 10;
        $num*= 2;
        echo "[*=사용] 변수 num의 값은 " .$num."입니다 <br>"; 
    
         // /=활용
        $num = 10;
        $num/= 2;
        echo "[/=사용] 변수 num의 값은 " .$num."입니다 <br>"; 
    
         //%/=활용
        $num = 10;
        $num%= 2;
        echo "[%=사용] 변수 num의 값은 " .$num."입니다 <br>"; 
    
         //.=활용
        $city = '서울';
        $city .= '특별시';
        echo "[.=사용] 변수 city의 값은 " .$city."입니다 <br>";    
    ?>  
</body>
</html>
복합 연산자 view
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
     <?php
        $num = 10;
        //++가 변수 뒤에 위치하므로 10 반한 후 ++가 작동하여 변수 num의 값은 11이 됨
        echo $num++;
    
        echo "<br>";
        
        echo $num;
    ?>
</body>
</html>

배열은 여러개의 값을 변수에 저장 할 수 있다.

배열 View
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
       <?php
            //배열 선언
            $earth = array();
        
            $earth[0] = 'korea';
            
            echo "earth 배열의 0 인덱스는" .$earth[0];
            echo "<br><br>";
    
            $earth1 = array ();
            $earth1['nation'] = 'korea';
            echo "earth1 배열의 0 인덱스는" .$earth1['nation'];
        ?>
    
</body>
</html>
    
array_push() View
array_push (변수명, 배열에 들어갈 값, 배열에 들어갈 값, ....);
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <?php
        $fruit =array();
        array_push($fruit, 'apple', 'banana', 'grape', 'coconut', 'tangerine', 'watermelon');

        echo $fruit[0]."<br>";
        echo $fruit[1]."<br>";
        echo $fruit[2]."<br>";
        echo $fruit[3]."<br>";
        echo $fruit[4]."<br>";
        echo $fruit[5]."<br><br>";

        $earth = array();
        $earth['nation'][0]='korea';
        $earth['nation'][1]='America';
        $earth['nation'][2]='canada';
        $earth['nation'][3]='japan';
        $earth['nation'][4]='germany';
        $earth['nation'][5]='france';
        $earth['nation'][6]='china';

        //var_dump는 배열의 내용을 보여준다
        var_dump($earth);
    ?>
</body>
</html>
    

변수에 사용되는 값이 숫자인지, 문자인지, 논리값인지를 구분하는 것을 데이터형이라 한다.

데이터형
int 또는 interger 숫자 - 정수
double 숫자 - 소수
string 문자열
boolean 논리값
null 없는 값
array 배열
데이터형View
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   
   <?php
        $num=12;
        echo "변수 \$num의 데이터형은" .gettype($num). "입니다<br>";

        $greeting = "안녕하세요";
        echo "변수 \$greeting의 데이터형은" .gettype($greeting). "입니다<br>";
        
          $numStr = "12";
        echo "변수 \$numStr의 데이터형은" .gettype($numStr). "입니다<br>";
        
        $fruit = array();
        echo "변수 \$fruit의 데이터형은" .gettype($fruit). "입니다<br>";
        
        $nai = null;
        echo "변수 \$nai 의 데이터형은" .gettype($nai). "입니다<br>";
        
        $boolean = true;
        echo "변수 \$boolean의 데이터형은" .gettype($boolean). "입니다<br>";          
    ?>
    
</body>
</html>
    
형 변환View
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   
   <?php
        $str = "문자열";
    echo "데이터형 변경전의 데이터형".gettype($str)."<br>";
    
    $str = (int)$str;
    echo "데이터형 변경 후의 데이터형".gettype($str)."값은{$str}<br>";
    
        $double = 12.7378;
        echo "데이터형 변경전의 데이터형" .gettype($double)."<br>";
    
        $double = (int)$double;
        echo "데이터형 변경전의 데이터형" .gettype($double)."값은{$double}";
    ?>

</body>
</html>         
If문 View
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   
       <?php
    
        $like = 'dream lights';
        if($like == 'dream lights'){
            echo '당신이 좋아하는 음악은 dream lights';
        } else {
            echo '당신이 좋아하는 음악은 dream lights가 아닙니다.';
        };
    
        echo "<br>";
        $data = "데이터 형";
        if(gettype($data) == 'string'){
            echo "데이터형은 문자열입니다.";
        } else if (gettype($data)=='intergar'){
            echo "데이터형은 정수형입니다";
        } else {
            echo "데이터형은 문자열도 정수형도 아닙니다.";
            
        }
    
        ?>
    
</body>
</html>
switch문 View
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   
   <?php
    
    $data = 'hello';
    switch($data){
            case 'annyung';
                echo '한국어 인사입니다.';
                break;
            
              case 'konnichiha';
                echo '일본어 인사입니다.';
                break;
            
              case 'hello';
                echo '영어 인사입니다.';
                break;
            
            default :
                 echo '한국어, 일본어, 영어가 아닙니다';
                break;            
    }
    ?>
    
</body>
</html>
for문 View
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
  
  <select name="birthMonth" id="birthMonth">
<!--
    <option value="1월">1월</option>
    <option value="2월">2월</option>
    <option value="3월">3월</option>
    <option value="4월">4월</option>
    <option value="5월">5월</option>
-->
       <?php

            for($i=1; $i<=12; $i++){ ?>
                <option value="<?=$i?>"><?=$i?></option>
            <?php } ?>

  </select>
 
    
</body>
</html>
foreach문 사용방법
foreach(대상변수 as foreach문에서 사용할 대상 변수의 대체 이름){
코드입력
}
for문 View
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <?php
        $member = array();
    
        //member 배열에 0 인덱스 생성, 0 인덱스도 배열로 선언
        $member[0]=array();
    
        $member[0]['name']='가나다';
        $member[0]['userID']='abcd1234';
        $member[0]['email']='abcd1234@naver.com';
 
        $member[1]=array();
    
        $member[1]['name']='라마바';
        $member[1]['userID']='defg1234';
        $member[1]['email']='defg1234@naver.com';
 
        $member[2]=array();
    
        $member[2]['name']='사아자';
        $member[2]['userID']='hijk1234';
        $member[2]['email']='hijk1234@naver.com';
 
//        for($i=0; $i < count($member); $i++){
//            echo $member[$i]['name']."<br>";
//        }
        foreach($member as $data){
            echo $data['name']."<br>";
        }
        
    ?>
    
</body>
</html>
    
while문 View
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
       <?php
        $sum= 0;               //합산값을 저장할 변수 선언
        $num=1;                  // 누적함을 시작할 값 선언
        while($num <= 10){   //num값을 $sum에 더하여 누적
            $sum +=$num;
            $num++;
        };
            echo "1부터 10까지의 누적함은 {$sum}입니다.";
        ?>

</body>
</html>

PHP는 약 3000여 개의 내장 함수가 있습니다. 함수는 사용자가 직접 제작할 수도 있고, 이미 만들어져 있는 함수들을 활용할 수도 있습니다.

trim()

trim()은 문자열의 앞과 뒤에 공백을 삭제하는 기능

//문자열을 입력하는 경우
trim("문자열"); //변수를 입력할 경우 $str = "문자열";
trim($str);
trim() View
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
       <?php
        
        $str=" 안녕하세요. ";
    
        echo "|".$str."|";
        echo "<br><br>";
        echo "|".trim($str)."|";
    
        ?>  
</body>
</html>
strtolower() strtoupper() View

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   
       <?php
            $str = "Hello World";
            echo "원문<br>";
            echo $str;
            echo "<br><br>";
            echo "대문자로 출력<br>";
            echo strtoupper($str);
             echo "<br><br>";
            echo "소문자로 출력<br>";
            echo strtolower($str);
        ?>
    
</body>
</html>
strlenView
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   
           <?php
                $str = "welcome to my home page";
                echo $str."의 문자열 길이는".strlen($str)."입니다.";    
            ?>
    
</body>
</html>

set_replaceView
set_replace('치환할 문자','대처할 문자', '대상 문자열');
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
       <?php
            $str = "Hello World";
            $changeWord = str_replace("World", "Na young", $str);
            echo $changeWord;
        ?>
    
</body>
</html>
substr()View
substr('대상 문자열','자르기 시작할 위치 설정', '자를 문자열 수');
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title> Document</title>
</head>
<body>
   
   <?php
        $fileName="img.jpg";
    
        $execute = substr($fileName, -4, 4);
            
            
            if($execute == '.jpg' || $execute == '.png' || $execute == '.gif' ){
                echo "업로드한 파일은 이미지 파일입니다.";
            } else {
                echo "이미지 파일이 아닙니다.";
            }
    ?>
    
</body>
</html>
explode()View
explode('나눌 문자', '대상문자열');
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <?php
        $email = "webstoryboy@naver.com";
        $emailArray = explode("@", $email);
    
        echo "<pre>";
        var_dump($emailArray);
        echo $emailArray[1];
    ?>
    
</body>
</html>
time()View
분류 문자 설명
d 일자를 두 자리로 반환합니다. 01~31
D 요일을 3글자로 반환합니다. Mon~Sun
j 일자를 0이 붙지 않는 형식으로 반환합니다. 1~31
I 요일을 영문 단어로 반환합니다. Sunday~Saturday
S 영문 서수 접미사를 반환합니다. st, nd, rd, th
w 요일을 순자로 반환합니다. 0(일)~6(토)
Z 해당 연도의 몇 번째 날인지 반환합니다. 0~364
W 해당 연도의 몇 번째 주인지 반환합니다. 12(연도의 12번째 주)
F 월을 영문 단어로 반환합니다. January~December
m 월을 두자리 숫자로 반환합니다. 01~12
M 월을 영문 3글자로 반환합니다. Jan~Dec
n 월을 0이 붙지 않는 숫자로 반환합니다. 1~12
t 해당 월의 날짜 수를 반환합니다. 28~31
년도 L 윤년인지 여부를 반환합니다. 윤년이면1, 아니면0
Y 연도를 4자리 수로 반환합니다. 2018
y 연도를 2자리 수로 반환합니다. 18
년도 a 오전과 오후를 영문 소문자로 반환합니다. am, pm
A 오전과 오후를 영문 대문자로 반환합니다. AM, PM
g 시간을 12시간 형식으로 반환하며, 0이 붙지 않습니다. 1~12
G 시간을 24시간 형식으로 반환하며, 0이 붙지 않습니다. 0~24
h 시간을 12시간 두 자리 형식으로 반환합니다. 01~12
H 시간을 24시간 두 자리 형식으로 반환합니다. 00~23
i 분을 두자리 형식으로 반환합니다. 00~59
s 초를 두자리 형식으로 반환합니다. 00~59
날짜/시간 c ISO 8601 형식의 날짜로 반환합니다. 2017-01-01T12:00:00+09:00
r RFC 2822 형식의 날짜로 반환합니다. Sun, 09, Jan 2019 12:00:00+09:00
U 유닉스 형식 시간을 반환합니다. 1136041200
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <?php
          ini_set('data,timezone','Asia/Seoul');
        echo '1970년 1월 1일 0시 0분 0초로부터'.time().'초가 지났습니다.';
        echo "<br>";
        echo "현재 시간은".date("Y년 m월 d일 H시 i분 s초",time());
    ?>
    
</body>
</html>
함수 만들기View
function 함수명() {
    //실행코드 }

함수명(); //함수 호출
함수의 파라미터와 아규먼트
function 함수명(파라미터) {
    //실행코드 }

함수명(아규먼트); //함수 호출
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <?php
        function hello(){
                echo "hello PHP";
        }    
    hello();
    
    function he($name){
        echo "hello".$name;
    }
    he('Mysql');
    ?>
    
</body>
</html>

GET은 데이터를 url에 붙여 전달하는 방식이며, POST HTTP 프로토콜 통신 시 전달하는 방식. GET은 url에 붙어 전달되므로 보안상 좋지 않지만, POST는 HTTP 프로토콜 통신 시에 전달되므로 보안상 GET보다 좋다.

GET의 데이터 전달 방식 View
http://www.webstoryboy.com/index.php?type=first&mobile=ok
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<!--  http://b-pencil.co.kr/php/sample23.php?type=first&mobile=ok-->
   <?php
        echo "GET['type']는" .$_GET['type']."<br>";
         echo "GET['mobile']는" .$_GET['mobile']."<br>";   
    ?>
    
</body>
</html>
POST의 데이터 전달 방식 View
http://www.webstoryboy.com/index.php?type=first&mobile=ok
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<!--  http://b-pencil.co.kr/php/sample23.php?type=first&mobile=ok-->
   <?php
        echo "GET['type']는" .$_GET['type']."<br>";
         echo "GET['mobile']는" .$_GET['mobile']."<br>";   
    ?>
    
</body>
</html>
CLASS 사용방법 View
class 클래스명 {
     기능 구현
}

//생성자
function __construct(){

}

//소멸자
function __destruct(){

}

//클래스 여는 방법
new 클래스명;
변수 = new

//클래스 메소드 호출방법
인스턴스 생성한 변수->메소드명(파라미터)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <?php
        class people{
            //생성자
            function __construct(){
                echo "사람은 돈을 좋아한다 <br>";
            }
            //말하기
            function speak($word){
                echo $word."라고 말했다<br>";
            }
            function run($km){
                echo $km."를 달리다.<br>";
            }
             function walk($km){
                echo $km."를 걷다.<br>";
            }
            
            //소멸자
            function __destruct(){
                echo "힘들다<br>";
            }
        }
        
        //인스턴스 생성
        $people=new people;
    
        //메소드 사용
        $people ->speak('나는 인간이다');
        $people ->run('거리를');
    
    ?>
    
</body>
</html>
</html>
include 와 require사용방법 View
include "파일 경로와 파일명"; require "파일 경로화 파일명";
<!DOCTYPE html>