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