IMCAT.DEV
로그인 가입
PHP 입문 문법

PHP 입출력 함수

PHP 입출력 함수 — 초급

PHP 입출력 함수

1. 도입 (왜 배워야 하는가)

PHP는 웹 개발에서 가장 많이 사용되는 서버 사이드 프로그래밍 언어 중 하나입니다. 입출력 함수는 데이터의 입력과 출력을 관리하는 핵심 역할을 합니다. 사용자로부터 데이터를 받고, 처리한 후 결과를 보여주는 과정을 담당하기 때문에 이해하고 활용하는 것이 중요합니다.

이 토픽을 모르면 사용자 입력을 처리하거나, 데이터베이스와 소통하는 등의 작업을 수행하기 어려워집니다. 예를 들어, 사용자가 웹 양식에 입력한 정보를 처리하여 웹 페이지에 결과를 보여주려면 입출력 함수를 잘 알고 있어야 합니다. 만약 이 부분을 이해하지 못하면, 사용자에게 필요한 정보를 제공하지 못하거나, 웹 애플리케이션이 올바르게 작동하지 않을 수 있습니다.

2. 핵심 개념 설명

입출력 함수는 크게 두 가지로 나눌 수 있습니다: 입력 함수와 출력 함수.

  • 입력 함수: 사용자의 입력을 받아들이는 함수입니다. 예를 들어, fgets()는 파일에서 한 줄씩 읽어오는 함수입니다.
  • 출력 함수: 데이터를 화면에 출력하는 함수입니다. echo나 print와 같은 함수가 여기에 해당합니다.
  • 용어 정리

    용어설명
    입력 함수사용자 또는 파일로부터 데이터를 입력 받는 함수
    출력 함수데이터를 화면에 출력하는 함수

    3. 기본 코드 예제

    가장 기본적인 사용자 입력과 출력을 보여주는 예제입니다.

    <?php
    // 사용자에게 이름을 입력받기
    echo "이름을 입력하세요: "; // 사용자에게 이름 입력 요청
    
    $name = trim(fgets(STDIN)); // 표준 입력에서 한 줄 읽어오기
    
    // 입력 받은 이름 출력하기
    echo "안녕하세요, " . $name . "님!\n"; // 사용자에게 인사하기
    ?>

    실행 결과:

    이름을 입력하세요: 홍길동
    안녕하세요, 홍길동님!
  • echo "이름을 입력하세요: ";: 사용자에게 이름을 입력하라는 메시지를 출력합니다.
  • $name = trim(fgets(STDIN));: 표준 입력(STDIN)에서 한 줄을 읽어와서 $name 변수에 저장합니다. trim() 함수는 입력된 문자열의 양쪽 공백을 제거합니다.
  • echo "안녕하세요, " . $name . "님!\n";: 입력된 이름을 사용하여 인사 메시지를 출력합니다.
  • 4. 실전 활용 예제

    예제 1: 웹 양식 데이터 처리

    쇼핑몰에서 고객이 장바구니에 상품을 추가할 때, 사용자가 입력한 정보를 처리하는 경우입니다.

    <?php
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        $product = htmlspecialchars($_POST['product']); // HTML 특수 문자를 변환하여 보안
        echo "장바구니에 " . $product . "이(가) 추가되었습니다!"; // 결과 출력
    }
    ?>
    <form method="post">
        상품명: <input type="text" name="product">
        <input type="submit" value="추가">
    </form>

    예제 2: 파일에서 데이터 읽기

    로그 파일에서 사용자 활동을 읽어오는 경우입니다.

    <?php
    $filename = "log.txt"; // 로그 파일 경로
    
    if (file_exists($filename)) {
        $file = fopen($filename, "r"); // 읽기 모드로 파일 열기
        while (($line = fgets($file)) !== false) { // 파일에서 한 줄씩 읽기
            echo $line . "<br>"; // 읽은 내용 출력
        }
        fclose($file); // 파일 닫기
    } else {
        echo "파일이 존재하지 않습니다."; // 파일이 없으면 에러 메시지 출력
    }
    ?>

    5. 흔한 실수와 주의사항

    실수 1: fgets() 사용 시 입력 버퍼 문제

  • 잘못된 코드:
  •     $name = fgets(STDIN); // 버퍼에 남아있는 '\n' 문제
  • 올바른 코드:
  •     $name = trim(fgets(STDIN)); // trim()으로 공백 및 줄바꿈 제거

    실수 2: HTML 특수 문자 처리 미비

  • 잘못된 코드:
  •     $product = $_POST['product']; // XSS 공격 가능
  • 올바른 코드:
  •     $product = htmlspecialchars($_POST['product']); // 보안 강화

    6. 정리

  • 입출력 함수는 사용자와의 상호작용에서 필수적입니다.
  • 입력 함수와 출력 함수의 개념을 이해해야 합니다.
  • 실무에서는 웹 양식 처리와 파일 읽기가 자주 사용됩니다.
  • 흔한 실수로는 입력 버퍼 문제와 보안 취약점이 있습니다.

다음에 학습하면 좋은 주제는 데이터베이스 연결 및 쿼리 처리입니다. 이를 통해 실제 애플리케이션에서 데이터를 저장하고 관리하는 방법을 배울 수 있습니다.