ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SISS/웹 스터디] 2학기 1주차 스터디 - PHP
    24-2 SISS/웹 2024. 9. 8. 23:50

    2학기 1주차 스터디 - PHP

    1주차 09/02 ~ 09/08 [PHP] 01 ~ 16

    [생활코딩] PHP

    https://www.youtube.com/playlist?list=PLuHgQVnccGMAMMNByX8Bf1BkVrShBhj1I

     

    * 편집 및 사진 파일 문제 9/9(월) 중으로 수정 예정

    → 수정 완료

     

    1. 수업소개


    • 웹의 등장(1990)으로 정보의 확산 시작
    • HTML 이용에의 불만 발생
      • 사람의 손으로 하나하나 코드를 치는 것에 대한 불만 
      • (웹페이지의 통합적 관리 + 양방향 정보 생산)을 위한 움직임
      • PHP, JSP, ASP, Django, Ruby on Rails, Node.js 등 개발
    • PHP
      • 웹 페이지 자동 생성(콘텐츠를 이용하여 자동으로 HTML을 만듦)

     

    2. 수업의 목적


    • php의 등장 배경 → 모든 페이지를 수동적으로 수정할 경우 많은 시간이 걸림
    • 예시
      • 주소
        • http://127.0.0.1/index.php?id=HTML → index만을 수정하여 관리할 수 있음 → index에서 id를 통해 페이지를 읽어옴을 알 수 있음
      • 파일
        • data에 문단 파일 추가만으로 새로운 페이지를 만듦

     

    3. PHP 설치


    • bitnami wamp
      • w → windows
      • a → apache
      • m → mysql
      • p → php
      → 설치 완료했다면 php는 따로 다운로드 받을 필요가 없음

     

    3.1.1. PHP 설치(윈도우)


    컨트롤 패널에서 Apache를 실행
    브라우저를 통해 localhost에 접속

     

    3.1.2. PHP 환경 설정 변경(윈도우)


    • php에 사용자의 실수를 알려주는 기능이 있음 → 에러 메시지는 사용자의 비밀번호 등 중요한 정보를 포함할 수 있음 → 해당 기능이 켜져 있을 경우 사용자에게 이러한 정보가 유출될 수 있기 때문에 기본 설정은 Off → php 설정을 직접 바꿔야 함 (근데 xampp는 기본 설정이 On인 듯)

     

    • php 기본 설정 변경 → 설정 후에는 항상 꼭 apache 서버를 재시동해야 적용이 됨 (재시동 시 php.ini을 다시 읽어오므로)
      • 에러 메시지
        1. 로컬 디스크/xampp/php/php.ini (파일 유형이 “구성 설정”)
        2. 우클릭 하여 [편집] 버튼을 누르기
        3. ctrl + f 를 통해 “display_errors”를 검색
        4. 세미 콜론 없는 display_errors를 On으로 변경(display_errors=On)
      • opcache (php의 성능을 높여주는 기능)
        1. 동일한 방법으로 “opcache”를 검색
        2. opcache.enable=0 으로 수정
        3. php 파일 수정 시 즉각적으로 반영되지 않도록 함
    • 기타
      • 컨트롤 패널의 [config]에서 접속자의 사용, 오류 로그를 확인할 수 있음

    php.ini 수정

     

    4. PHP의 원리


    • php
      • 구성 (사진은 아래에 있음)
        • 점선 왼쪽(이용자)은 웹 브라우저
        • 점선 오른쪽(서버)은 웹 서버(아파치), php(프로그램)가 설치되어 있음
      • 상호작용
        • 웹 브라우저가 파일을 요청 (주소)
        • 웹 서버가 주소를 보고 확장자에 따라 요청을 처리
          • .html의 경우 바로 제공 가능
          • .php의 경우 php에게 파일 처리를 맡김 → php가 해당 문서를 해석하여 만든 html 파일을 웹 서버에게 제공 → 웹 서버가 웹 브라우저에 생성된 파일을 전달
    • 실습
      • 로컬 디스크/xampp/htdocs 폴더에 파일을 생성 → html 파일은 실행 시 내용이 동일 → php 파일은 동적으로 내용이 변경 (php가 html 파일 생성 시 현재 시각 반영)
    <!-- 
    	index.html
    -->
    
    <!DOCTYPE html>
    <html>
        <body>
            2024-09-08 15:14:01
        </body>
    </html>
    <!--
    	index.php
        → <?php ?> 안의 내용만 php 내용이고, 나머지는 그대로 출력됨
    -->
    
    <!doctype html>
    <html>
    	<body>
    		<?php
    			echo date('Y-m-d H:i:s');
    		?>
    	</body>
    </html>

     

    5. PHP의 데이터 타입


    • 숫자 → 정수, 실수
    • 문자 → 문자열

     

    5.1. PHP와 숫자


    • 정수 및 실수 → 그대로 입력하면 됨
      • 기본
        • <?php ?> → php문의 시작과 끝
        • echo → 출력
          • print() 를 이용하여 출력할 수도 있음
      • 연산자
        • 사칙연산 가능 → +, -, *, /
      <!--
          number.php
          브라우저에 다음 입력 127.0.0.1/number.php
      -->
      
      <!doctype html>
      <html>
      <body>
          <h1>숫자와 산술 연산자</h1>
      	<h2>1+1</h2>
      	<?php
      	echo 1+1;
      	?>
      	<h2>2-1</h2>
      	<?php
      	echo 2-1;
      	?>
      	<h2>2*2</h2>
      	<?php
      	echo 2*2;
      	?>
      	<h2>4/2</h2>
      	<?php
      	echo 4/2;
      	?>
      </body>
      </html>
      

    5.1. PHP와 숫자

     

    5.2. PHP와 문자열


    •  문자열
      • 규칙
        • 기본적으로 작은 따옴표(’’), 큰 따옴표(””)를 이용
        • 시작과 끝은 동일
        • 따옴표를 문자열에 포함할 경우
          1. 다른 종류의 따옴표로 문자열 앞 뒤를 감싸기
          2. 이스케이프 문자를 이용
      • 연산자
        • 결합 연산자 → .
      • 문자열 함수
        • 문자열 길이 → strlen()
      <!--
          string.php
      -->
      
      <!doctype html>
      <html>
      <body>
          <h1>문자열과 문자열 연산자</h2>
          <?php
              echo "Hello world";
          ?>
          <h2>결합 연산자</h2>
          <?php
          echo "Hello "."world";
          ?>
          <h2>문자열 길이</h2>
          <?php
          echo strlen("Hello world");
          ?>
      </body>
      </html>
      

    5.2. PHP와 문자열

     

    6. PHP의 변수


    •  변수
      • 참고
        • lorem을 쓰고 탭을 누르면 무작위 텍스트를 생성해줌
      • 규칙
        • 변수 이름 앞에는 항상 $ → $a
        <!--
            variable.php
        -->
        
        <!doctype html>
        <html>
            <body>
                <h1>변수</h1>
                <?php
                    $name = "siss";
                    echo "Lorem ipsum dolor sit, ".$name." amet consectetur adipisicing ".$name." elit. Dolor repudiandae ".$name." quos minus animi ullam perferendis. Quia ".$name." perspiciatis possimus pariatur, rerum amet eveniet nostrum nisi magni reiciendis quaerat! Facere, dicta sint ".$name.".";
                ?>    
            </body>
        </html>
        

    6. PHP의 변수

     

    7.1. PHP의 URL 파라미터


    • 입력값을 파라미터로 이용하기
      • url을 통해 name을 받아오려면
        • (주소 입력) ~/parameter.php?name=입력값
        • (php 파일) <?php echo $_GET['name']; ?> (여러 파라미터의 경우에는 &로 구분하여 입력)
          <!DOCTYPE html>
          <html lang="en">
              <head>
                  <meta charset="UTF-8">
              </head>
              <body>
                  안녕하세요, <?php echo $_GET['name']; ?>님
              </body>
          </html>
          

    7.1. PHP의 URL 파라미터

     

    7.2. URL 파라미터의 활용


    ...
    <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>
        Lorem ipsum, dolor sit amet consectetur adipisicing elit. Quidem, minima? Optio cumque nostrum, aperiam molestiae exercitationem debitis at natus facilis dignissimos aut dolor suscipit deleniti error sapiente. Autem, natus facere!
    </body>
    </html>

     

     

    8.1. 함수의 사용


    • strlen() → 문자열의 길이를 반환
    • nl2br → html에서 줄바꿈 문자를 인식하지 못하므로 문자열 내의 \n을 <br>로 변환하는 함수
    <!--
        function.php
    -->
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>function</title>
        </head>
        <body>
            <h1>function</h1>
            <?php
                $str = "Lorem ipsum dolor, sit amet consectetur adipisicing elit.
                        Impedit itaque ad mollitia culpa quam quibusdam consequatur id quia, rem numquam delectus assumenda soluta voluptatibus iusto reiciendis sunt eaque, quaerat temporibus.";
                echo $str;
            ?>
            <h2>strlen()</h2>
            <?php
                echo strlen($str);
            ?>
            <h2>nl2br</h2>
            <?php
                echo nl2br($str);
            ?>
        </body>
    </html>
    

    8.1. 함수의 사용

     

    8.2. 함수의 활용


    • 파일 읽어오기
      • file_get_contents(”주소”);
      • 각각의 목록에 id를 추가하여 로드 시 id 값을 전달 (실제로는 보안 및 규모 문제 등으로 이렇게 사용하면 안 됨) → $_GET[’id’]을 문자열에 연결하여 파일을 읽어옴
        ...
        <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/".$_GET['id']);
            ?>
        </body>
        </html>
        

    8.2. 함수의 활용

     

    9. 제어문 예고


    • 시간의 흐름대로 진행되는 일의 순서를 제어함 → 조건문, 반복문

     

    10. 조건문 예고


    • index.php 뒤에 id값이 없을 경우 홈 페이지가 나오게 하고 싶다면 → 조건문 이용

     

    11. Boolean과 비교 연산자


    • 불 값 → 비교 연산자
    • var_dump() → 입력 값의 자료형, 입력 값, 길이를 보여주는 함수
      <!--
          comparison.php
      -->
      
      <!DOCTYPE html>
      <html>
          <head>
              <meta charset="UTF-8">
          </head>
          <body>
              <h1>비교 연산자 &amp; 불</h1>
              <h2>1==1</h2>
              <?php
                  var_dump(1==1);
              ?>
              <h2>1>1</h2>
              <?php
                  var_dump(1>1);
              ?>
              <h2>1>=1</h2>
              <?php
                  var_dump(1>=1);
              ?>    
          </body>
      </html>
      

    11. Boolean과 비교 연산자

     

    12. 조건문의 형식


    • if문
    if (불 값) {
    	실행문1;
    } else {
    	실행문2;
    }

     

    13. 조건문의 활용


    • isset() → 값이 있는지 여부를 반환하는 함수
      ...
      <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>
      

    13. 조건문의 활용

     

    14. 반복문 예고


    • 새로운 데이터 파일이 추가되었을 경우 자동으로 이를 보여줄 수 있도록 하자 → 반복문을 이용하여 목록 자동 생성

     

    15. 반복문의 형식


    • while 문
    while (불 값) {
    	실행문;
    }
    <!--
        loop.php
    -->
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>반복문</title>
        </head>
        <body>
            <h1>while</h1>
            <?php
                echo'1<br>';
                $i = 0;
                while ($i < 3) {
                    echo '2<br>';
                    $i = $i + 1;
                }
                echo '3<br>';
            ?>
        </body>
    </html>

    15. 반복문의 형식

     

    16. 배열의 형식


    • 배열 → $배열명 = array(원소1, 원소2, ...);
        • count() → 배열의 원소 수를 반환
        • array_push() → 배열에 원소를 삽입배열 함수

    16. 배열의 형식

    • (참고) var_dump()로 배열을 볼 때 우클릭>[페이지 소스 보기]를 누르면 보기 편함
    •  
Designed by Tistory.