DEVELOP
article thumbnail

php의 원리 

* html 파일 전송 시 (정적)

- 웹 서버에서 html 파일을 요청받으면 그대로 읽어서 그대로 전송함 ( 언제나 똑같은 정보를 보여줌)

 

* php 파일 전송 시 (동적)

- php 파일을 요청받으면 웹 서버가 자신이 처리할 수 없다는 것을 알고,  PHP프로그램에게 위임함 

- php파일을 열어보고 <?php 기호가 나오면 그 다음 코드들을 해석해서 동작하게 함 

- ?> 가 나오면 해석한 결과를 웹 서버에게 보내고 웹 서버는 웹 브라우저에게 보냄

- 웹 브라우저는 php코드가 없는 순수 html만으로 이루어진 정보를 받음 


php의 기본 문법

- php 시작과 끝을 알리는 <?php  , ?> 기호 

<?php

?>

- 출력문은 echo 함수, 문장의 끝에는 항상 세미콜론(;) 붙여주어야 함 

echo 1+2;

- 문자열 연결할 때는 '.' 으로 연결 

"Hello"."World!"

- 문자열 길이는 strlen 함수 사용 

strlen("Hello World!")

- 변수 선언시 변수 이름 앞 '$' 추가해 선언 , 변수 사용시에도 변수 이름 앞 '$' 추가해 사용 

$name = "abcde";
echo "Hello, ".$name;

- php의 url 파라미터는 $_GET['파라미터이름' 통해 얻을 수 있음 

<h2>Welcome, <?php echo $_GET['name'];?>!</h2>

http://localhost/test.php?name=user 접속

- 파라미터 여러개 사용 시 &로 연결함

<h2>Welcome, <?php echo $_GET['name'];?> 
    who lives in <?php echo $_GET['address'];?>.</h2>

http://localhost/test.php?name=kim&address=seoul 접속

- 파일 읽기 함수 : file_get_contents()

file_get_contents("data/HTML");

 

- 데이터 타입과 함께 출력해주는 함수 : var_dump()

var_dump(1+1); // int 2

- 디렉토리의 파일 리스트를 가져오는 함수 : scandir()

$list = scandir('./data');

php의 함수 선언

- php의 함수 선언 : function(){}

function print_title()
    {
        if (isset($_GET['id'])) {
            echo $_GET['id'];
        } else {
            echo "Welcome";
        }
    }

php의 배열

- php의 배열 : array

$list = array(1,2,3);

- 배열의 개수를 리턴해주는 함수 : count()

count($list)

- 배열에 원소를 추가하는 함수 : array_push() - 첫번째 파라미터에는 배열이 와야함

array_push($list, 4);

php의 조건문

- php의 조건문 : if

if (isset($_GET['id'])) {
    echo $_GET['id'];
} else {
    echo "Welcome";
}

- 값이 있는지 없는지 확인하는 함수 : isset - if문과 함께 활용

isset($_GET['id'])

php의 반복문

- php의 반복문 : while 

$i = 0;
while($i<5){
    echo $i;
    $i++;
} //01234

- php의 반복문 : for

for($i=0; $i<5; $i++){
    echo $i;
} // 01234

 


- 전체코드

<?php
    function print_title()
    {
        if (isset($_GET['id'])) {
            echo $_GET['id'];
        } else {
            echo "Welcome";
        }
    }
    function print_list(){
        $list = scandir('./data');
        for ($i = 0; $i < count($list); $i++) {
            if ($list[$i] != '.' && $list[$i] != '..') {
                echo "<li><a href=\"index.php?id=$list[$i]\">$list[$i]</a></li>";
            }
        }
    }
    function print_description(){
        if (isset($_GET['id'])) {
            echo file_get_contents("data/" . $_GET['id']);
        } else {
            echo "Hello, php";
        }
    }
?>
<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <title><?php print_title(); ?></title>
</head>

<body>
    <h1><a href="index.php">WEB</a></h1>
    <ol>
        <?php print_list(); ?>
    </ol>
    <h2>
        <?php print_title(); ?>
    </h2>
    <p> <?php print_description(); ?></p>
</body>


</html>

결과예시

profile

DEVELOP

@JUNGY00N