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 "저는 {$birthMonth}월에 태어났습니다. <br>";
        echo "저는 '4'월에 태어났습니다. <br>";
        echo "저는 \"4\"월에 태어났습니다. <br>";
        echo "\$15를 지불하세요"
    ?>
</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 %=3;
    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 "earth 배열의 nation인덱스는 ".$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','water melon');
    
        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}";
        
        $double = 12.7378;
        echo "데이터형 변경전의 데이터형" .gettype($double)."
"; $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) == 'integer'){
        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 id="birthMonth" name="birthMonth">
        <?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'] = 'evev';
        $member[0]['email'] = 'evev@naver.com';
    
        $member[1] = array();
        $member[1]['name'] = '김수자';
        $member[1]['userID'] = 'avev';
        $member[1]['email'] = 'avev@naver.com';
    
        $member[2] = array();
        $member[2]['name'] = '김자영';
        $member[2]['userID'] = 'bvev';
        $member[2]['email'] = 'bvev@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
<!DOCTYPE html>
<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>        
strlen() View
<!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_replace() View
set_replace('치환할 문자', '대처할 문자', '대상 문자열');
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <?php
        $str = "Hello World";
        $changWord = str_replace("World", "Na young", $str);
        echo $changWord;
    ?>
</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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <?php
        ini_set('date,timezone','Asia/Seoul');
        echo '1970년 1월 1일 0시 0분 0초로부터 '.time().'초가 지났습니다.';
        echo "<br>";
        echo "현재 시간은 " .date("Y년 m월 d일 H시 i분 s초",time());
    ?>
</body>
</html>
분류 문자 설명
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
함수 만들기 View
function 함수명(){
     //실행 코드
}

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

//함수 호출
함수명(아규먼트);

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://webstoryboy9.dothome.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
<!DOCTYPE html> 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <h1>로그인</h1>
    <form name="data" method="post" action="sample24-post.php">
        <label for="email">email</label>
        <input type="email" name="email" id="email" placeholder="이메일 주소 입력" />
        
        <label for="password">비밀번호</label>
        <input type="password" name="password" id="password" placeholder="비밀번호 입력" />
        <input type="submit" value="전송" />
    </form>
</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('나는 인간이다');
    ?>
</body>
</html>     
include와 require사용방법 View
include "파일 경로와 파일명";
require "파일 경로와 파일명";
<!DOCTYPE html>