WEB2 - PHP

PHP 파일로 모듈화 - require

수업소개

파일로 코드를 분류해서 정리정돈 하는 방법을 알아봅시다

 

 

 

변경사항

lib/print.php

<?php
function print_title(){
  if(isset($_GET['id'])){
    echo $_GET['id'];
  } else {
    echo "Welcome";
  }
}
function print_description(){
  if(isset($_GET['id'])){
    echo file_get_contents("data/".$_GET['id']);
  } else {
    echo "Hello, PHP";
  }
}
function print_list(){
  $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>\n";
      }
    }
    $i = $i + 1;
  }
}
?>

 

view/top.php

<?php
require_once('lib/print.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>

 

view/bottom.php

</body>
</html>

 

index.php

<?php
require_once('lib/print.php');
require_once('view/top.php');
?>
    <a href="create.php">create</a>
    <?php if(isset($_GET['id'])) { ?>
      <a href="update.php?id=<?=$_GET['id']?>">update</a>
      <form action="delete_process.php" method="post">
        <input type="hidden" name="id" value="<?=$_GET['id']?>">
        <input type="submit" value="delete">
      </form>
    <?php } ?>
    <h2>
      <?php
      print_title();
      ?>
    </h2>
    <?php
    print_description();
     ?>
<?php
require_once('view/bottom.php');
?>

 

create.php

<?php
require('lib/print.php');
require('view/top.php');
?>
    <a href="create.php">create</a>
    <form action="create_process.php" method="post">
      <p>
        <input type="text" name="title" placeholder="Title">
      </p>
      <p>
        <textarea name="description" placeholder="Description"></textarea>
      </p>
      <p>
        <input type="submit">
      </p>
    </form>
<?php
require('view/bottom.php');
?>

 

update.php

<?php
require('lib/print.php');
require('view/top.php');
?>
    <a href="create.php">create</a>
    <?php if(isset($_GET['id'])) { ?>
      <a href="update.php?id=<?=$_GET['id']?>">update</a>
    <?php } ?>
    <h2>
     <form action="update_process.php" method="post">
       <input type="hidden" name="old_title" value="<?=$_GET['id']?>">
       <p>
         <input type="text" name="title" placeholder="Title" value="<?php print_title(); ?>">
       </p>
       <p>
         <textarea name="description" placeholder="Description"><?php print_description(); ?></textarea>
       </p>
       <p>
         <input type="submit">
       </p>
     </form>
<?php
require('view/bottom.php');
?>

 

댓글

댓글 본문
  1. ezorhub
    2021.09.01
    슬슬 코드가 눈에 익어갑니다~
    단어는 다르지만 결국 사용법은 어느 언어든 비슷한 걸 많이 배운 시간이었습니다!
  2. chimhyangmoo
    21.06.03
  3. 21-04-25
  4. jeisyoon
    2021.04.14 파일로 모듈화 (Require) - OK
  5. hanel_
    21.2.21
  6. 완료
  7. kkn1125
    21.01.05.화 완료~!
  8. ppwater
    index.php 의 코드를 그대로 복사해서 index2.php 등의 파일을 만들고 코드를 붙여넣기 한 뒤, index.php와 index2.php 를 서로 링크해주면 될 것 같아요
    대화보기
    • 우성짱
      좋아요!
    • siver
      완료
    • クレヨンしんちゃん
      ㅇㄹ
    • 박준영
      200630 완료
    • hpyseun
      05/27/2020 감사합니다
    • 이서연
      완료
    • 아자요
      HTML, Java Script 완강 후 새로운 도전시작

      20.05.13일 / 완료
    • Lucas Trowman
      완료!
    • OneJae EE
      20.04.14 화 / 37세 비전공자 / 완료
    • 스티븐잡숴
      완료
    • moon
      항상 감사합니다.!!
    • 오호
      저렇게 하니 마치 객체지향프로그래밍하는것같네요
    • 햄쮸맨
      오홍홍 깔끔해졌어요!
    • 몽글몽글솜사탕
      감사합니다
    • 서스펜스
      alt+1 alt+2 ... 해보세요
      대화보기
      • 허공
        190507 감사합니다.
      • 우왕 개꿀
      • 추가 강의가 나오면 좋겠다.
        게시판 하나를 만드는 건 이제 이해가 됐는데
        게시판을 여러개 만들려면 어떻게 해야할까요?
      • Lsalute
        2 일만에 완료.. 감사합니다... 저는 기본기가 있어서 금방 여기까지 왔네요... ㅎㅎ...
      • Gihoon Pomme Ryu
        완료. 고맙습니다.
      • 로버트한
        코드가 깔끔해 졌여요^^ 감사합니다.^^
      • 심민섭
        왜냐면 top.php를 그냥 바로 켠것이 아니라 index.php가 있는 곳에서 불러온 셈이기 때문입니다.
        대화보기
        • lib 폴더와 view 폴더의 위치가 달라서 top.php 에서 require 문을 쓸 때 '../lib/print.php' 로 했더니 에러가 나고
          그냥 'lib/print.php' 로 하니 정상실행 되네요.
          path를 따져보면 부모폴더로 올라간 이후 lib 를 지정해주는 게 맞을 것 같은데 말이죠.
          혹시 왜 그런지 이유를 아시는 분 있으신가요?
        • 아톰에 index.php와 update.php 왔다갔다 하는 단축키 뭔지 아시는분 좀 갈켜주세요
        • 제갈량
          모듈을 이용하니
          코드가 확실히 간결해지고
          코드 보기가 상당히 수월해졌네요.
          requure_once를 쓰지 않으면 에러가 난다는 것까지 확실하게 알았습니다.
          감사합니다. ^^
        • Hyun Woo Lee
          중복된 코드들에 대해 정리정돈 된 느낌이 들어서 좋네요.
          소스 가독성 또한 높아진다는..!
        • Mingi Son
          코드가 훨씬 보기 쉬워지네요!! 감사합니다
        • node.js
          require_once 함수를 쓰지 않고 index.php에 top.php를 가져오는 코드를 지우면 중복을 더 줄일 수 있어요
        버전 관리
        egoing
        현재 버전
        선택 버전
        graphittie 자세히 보기