html/php 학습

Simcurity·2023년 4월 28일
0

html/css/javascript/php

목록 보기
2/4

오늘도 php를 배워보겠습니다.

1. 함수

함수란 보통 프로그래밍에서 어떤 역할을 해주는것으로 사용자를 더 편하게만들어줍니다.

1-1) strlen() 함수

문자열의 길이를 정수로 나타내주는 함수입니다.

<!DOCTYPE html>
<html>
<head>
        <body>
                <h1>function</h1>
                <?php
                        $str = "simcurity is so smart";
                echo $str;
                ?>
                <h2>strlen()</h2>
                <?php
                        echo strlen($str);
                ?>
        </body>
</head>
</html>


strlen() 함수로 문자열 길이 확인

1-2) n12br()

html에서는 <br>로 줄바꿈을 하지만 php에서는 줄을 띄운다고 인식하지 못합니다. 그래서 nl2br() 함수를 써야합니다.

<!DOCTYPE html>
<html>
<head>
        <body>
                <h1>function</h1>
                <?php
                        $str = "simcurity is
                                so smart";
                echo $str;
                ?>
                <h2>nl2br()</h2>
                <?php
                        echo nl2br($str);
                ?>
        </body>
</head>
</html>

1-3) file_get_contents()

file_get_contents() 함수를 이용해 저번 시간에 만든 HTML,CSS,JAVASCRIPT를 클릭과 동시에 본문의 내용도 변경시켜보겠습니다.

일단 /var/www/html/data라는 디렉터리를 생성해주고 그 곳에 HTML, CSS, JavaScript라는 텍스트 파일을 만들고 본문 내용을 넣었습니다.

<!DOCTYPE html>
<html>
        <head>
                <meta charset="utf-8">
        <title></title>
        </head>
        <body>
                <h1>WEB</h1>
                <ol>
                        <li><a href="index.php?id=HTML">HTML</a></li>
                        <li><a href="index.php?id=CSS">CSS</a></li>
                        <li><a href="index.php?id=JavaScript">JavaScript</a></li>
                </ol>
                <h2>
                        <?php
                                echo $_GET['id'];
                        ?>
                </h2>
                <?php
                        echo file_get_contents("data/html");
                ?>
        </body>
</html>


본문에 /data/html 파일의 내용을 가져왔습니다.

그럼 이제 html, css, javascript를 누를 때 마다 해당 내용을 가져오게 해보겠습니다.
마지막 php호출 부분에서

echo file_get_contents("data/".$_GET['id']);

수정

id 파라미터 값에 따라 본문의 내용을 가져오는 모습
하지만, 해당 방법은 보안 상 이 코드를 그대로 쓰면 안된다고 한다. 이유는 아마 파라미터 조작에 의한 접근 시 위험할 수 있기 때문일 것 같습니다.

2. boolean

TRUE or FALSE 라는 두가지의 값만 가지는 데이터 타입
var_dump() 함수는 데이터 타입과 크기를 동시에 알려줍니다. echo 대신에 작성

<!DOCTYPE html>
<html>
<head>
        <meta charset = "utf-8">
        <title></title>
</head>
<body>
        <h1>comparison</h1>
        <h2>1==1</h2>
        <?php
                var_dump(1==1);
        ?>
        <h3>1<2</h3>
        <?php
                var_dump(1<2);
        ?>
        <h4>1>3</h4>
        <?php
                var_dump(1>2);
        ?>
</body>
</html>

3. 조건문

if(true), if(false)로 동작 순서를 변환이 가능합니다.

<!DOCTYPE html>
<html>
<head>
        <meta charset="utf-8">
        <title></title>
</head>
<body>
        <h1>conditional</h1>
        <h2>if</h2>
        <?php
                echo '1<br>';
                if(false){
                echo '2<br>';
                }
                echo '3<br>';
        ?>
</body>
</html>

3-1) else문 추가

if(false){
echo '2<br>';
}
else {
echo '2-2<br>';
}

3-2) isset()

isset() 함수는 함수에 값으로 들어온 것이 값을 가지고 있느냐 없느냐로 true or false가 반환됩니다.
그래서, id값이 있을 때, 없을 때를 구분하여 페이지를 보여줄 수 있습니다.

<!DOCTYPE html>
<html>
        <head>
                <meta charset="utf-8">
        <title></title>
        </head>
        <body>
                <h1><a href = "index.php">WEB</a></h1>
                <ol>
                        <li><a href="index.php?id=HTML">HTML</a></li>
                        <li><a href="index.php?id=CSS">CSS</a></li>
                        <li><a href="index.php?id=JavaScript">JavaScript</a></li>
                </ol>
                <h2>
                        <?php
                                if(isset($_GET['id'])) {
                                        echo $_GET['id'];
                                } else {
                                        echo "Welcome";
                                }
                        ?>
                </h2>
<?php
                        if(isset($_GET['id'])){
                                echo file_get_contents("data/".$_GET['id']);
                        } else {
                                echo "Hello PHP";
                        }
                ?>
        </body>
</html>

4. 반복문

<!DOCTYPE html>
<html>
<head>
        <meta charset = "utf-8">
        <title></title>
</head>
<body>
        <h1>while</h1>
        <?php
        $i = 0;
        echo '1<br>';

        while($i < 3){
        echo '2<br>';
        $i =$i +1;
        }
        echo '3<br>';
        ?>
</body>
</html>


반복문을 통해 2를 세 번 출력해보았습니다.

5. 배열

배열은 또 하나의 데이터 타입입니다.
array라는 문자를 쓰고 array_push로 끝에 값을 추가해줍니다.
count는 배열의 크기를 출력해줍니다.

<!DOCTYPE html>
<html>
<head>
        <meta charset="utf-8">
        <title></title>
</head>
<body>
        <h1>array</h1>
        <?php
        $name = array('se', 'cu', 'ri', 'ty');
        echo $name[1].'<br>';
        var_dump(count($name));
        echo '<br>';
        array_push($name, 'sim');
        echo $name[4].'<br>';
        var_dump(count($name));
?>
</body>
</html>


배열의 1번째 자리 값 출력
배열 길이 출력
배열에 sim 추가
마지막 자리 출력
배열 길이 출력

6. 활용

이번에는 자동으로 data디렉터리의 데이터를 읽어서 페이지에 추가해주는 코드를 짜보겠습니다.

<!DOCTYPE html>
<html>
<head>
        <meta charset="utf-8">
        <title></title>
</head>
<body>
        <h1><a href = "index.php">WEB</a></h1>
        <ol>
                <?php
                        $list = scandir("./data");
                        $i = 0;
                        while($i<count($list)){
                                if($list[$i] != '.'){
                                        if($list[$i] != '..') {
                                                echo "<li><a href = \"index.php?id=$list[$i]\">$list[$i]</a></li><br>";
                                        }
                                }
                                $i = $i +1;
                        }
                ?>      
        </ol>
        <h2>
        <?php
                if(isset($_GET['id'])){
                        echo $_GET['id'];
                }
                else {  
                        echo "Welcome";
                }       
        ?>
        </h2>   
        <h3>
        <?php
                if(isset($_GET['id'])){
                        echo file_get_contents("data/".$_GET['id']);
                } else {
                        echo "Hello PHP";
                }
        ?>
</body> 
</html> 

오늘은 여기까지 학습하겠습니다.

참고 : 생활코딩 PHP+MySQL

0개의 댓글