생활코딩 PHP① (PHP의 설치 ~ PHP의 조건문 활용)

krystal·2023년 3월 15일
0

생활코딩

목록 보기
4/5
post-thumbnail

강의 출처

PHP의 배경과 사용예시 (feat. 설치)

html을 직접 타이핑하여 수동으로 만드는것에 대해 불편함을 느낌
PHP, JSP, ASP, Django, Ruby on Rails, Node.js 와 같은 기술들은 이런 맥락에서 생기게 되었다.

생산성의 한계를 극복하기 위해서 PHP를 사용할 수 있다.
ex) index 파일로 3개의 웹페이지를 보여줌
http://127.0.0.1/idex.php?id=HTML
http://127.0.0.1/idex.php?id=CSS
http://127.0.0.1/idex.php?id=JavaScript

Bitnami wamp 설치경로는 현재 막혀있기 때문에 XAMPP를 사용하여 PHP를 설치해주었음

▲ php 파일을 생성하여 실행까지 마친 상태




PHP의 실행

index.php일 경우, Web server에서는 php 확장자를 처리해줄 PHP에게 파일을 위임해준다.
PHP는 받은 파일을 통해 처리를 해준 후 다시 Web server에게 넘겨준다.

(예시 코드)

<!doctype html>
<html>
  <body>
    2018-01-20 18:36:01
  </body>
</html>
<!doctype html>
<html>
  <body>
    <?php
      echo date('Y-m-d H:i:s');
    ?>
  </body>
</html>

두 개의 코드를 비교하여 실행해보면
첫 번째는 2018-01-20 18:36:01 이라는 텍스트가 고정되어 출력될 뿐이지만
두 번째는 새로고침을 할 때마다 현 시각으로 다시 초기화하여 출력해준다.

(하지만 막상 php를 실행해서 돌린 후, 나온 결과물에 대해서 코드를 뜯어보면
php 문법은 온데간데없고 html만 나올 뿐이다. 이미 처리를 해서 나온 결과물의 html이기 때문이다.
👉 php의 모든 코드는 최종적으로 사라진다.)

여기서 html은 정적이지만 php는 동적이라는 것을 알 수 있다.


echo 함수

데이터의 형식에 무관하게 화면에 출력하기 위한 방식은 echo가 있다.
php는 하나의 구문이 끝나면 반드시 세미콜론을 찍어줘야한다.
$로 시작하는것은 변수선언을 뜻한다

php에 입력을 주고싶다면 php 다음에 물음표를 삽입해주어 값을 할당한다.
ex) .php?name=engoing
name이라는 값에 engoging이라는 문자를 할당해준다.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    안녕하세요. <?php echo $_GET['address']; ?>에 사시는 <?php echo $_GET['name']; ?></body>
</html>

위의 코드처럼 address, name 등 변수가 여러개라면 구분자가 필요하게 된다. 여기선 구분자를 '&'로 나타낸다. 그러므로 위 코드에선 .php?name=engoing&address=Seoul 형태의 주소를 입력해야한다.


echo file_get_content

.php?id가 무엇이냐에 따라 사용되는 내용도 달라지게 코드를 짜주고싶다면 echo file_get_content 함수를 사용한다. 디렉토리 위치를 함수 안에 넣어주어 그 안에 있는 코드를 가져올 수 있도록한다.

<!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/".$_GET['id']);
     ?>
  </body>
</html>

여기서 echo file_get_contents("data/".$_GET['id']) 보안적으로 좋지 않은 코드라 실제 개발할때는 사용하지않기를 권고한다고 한다.

(+) var_dump 함수는 변수에 대한 정보를 반환하는 기능을 가진다.

// 예제 코드
    <?php
    var_dump(1==1);
    ?>



if문

php에서의 if문은 c언어의 if문 형식과 유사하다

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

이를 활용하여 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>
profile
https://source-coding.tistory.com/

0개의 댓글