반응형
Web Development · PHP
PHP 시작
print · echo · HTML 임베딩 완전 정리
"안녕하세요" 한 줄로 보는 서버 사이드 언어의 첫 걸음
시작 PHP는 어디서 실행되는가
HTML/CSS/JavaScript는 브라우저(클라이언트)에서 실행된다. 반면 PHP는 웹 서버에서 실행되고, 그 결과(HTML)만 브라우저로 전송된다. 사용자는 PHP 코드를 절대 보지 못한다.
브라우저
요청
요청
→
웹 서버
PHP 실행
PHP 실행
→
HTML 응답
브라우저로
브라우저로
용어 핵심 키워드
<?php ?>PHP 코드 시작/끝
.php 확장자서버가 PHP로 인식할 파일 이름
print화면에 문자열 출력 (단일 인자)
echo출력 — 더 빠르고 다중 인자 가능
// 또는 #한 줄 주석
/* ... */여러 줄 주석
;한 문장 끝 — 필수
localhost내 컴퓨터의 웹 서버 주소
XAMPP / MAMP로컬 개발용 웹 서버 패키지
1 첫 PHP 파일 — Start.php
<?php // 위 문장처럼 시작해서 print "안녕하세요"; // HTML tag가 필요할 땐 print "<br>"; // 이렇게 사용한다 ?> <!-- 위 문장처럼 끝나야 한다 -->
브라우저에 보이는 결과 — http://localhost/Start.php
안녕하세요
📌 결과 화면에는 "안녕하세요"만 보인다.
<?php ?>도, 주석도, print도 사용자에게 안 보인다 — 서버에서 다 처리되고 결과만 응답.2 PHP 태그 — <?php ... ?>
PHP 코드는 반드시 <?php로 시작하고 ?>로 끝난다. 이 태그 안의 코드만 PHP 엔진이 처리하고, 바깥은 그대로 HTML로 전송된다.
<!-- 일반 HTML --> <h1>제목</h1> <?php // 여기는 PHP — 서버에서 처리 echo "<p>PHP가 만든 단락</p>"; ?> <!-- 다시 일반 HTML --> <footer>꼬리말</footer>
※ 짧은 태그 형태
<?php ... ?>— 표준, 항상 동작<? ... ?>— 단축 태그, php.ini 설정에 따라<?= $var ?>—<?php echo $var; ?>의 단축형 (현재 표준 지원)
⚠ 마지막 ?>는 종종 생략된다 — 파일 끝 다음에 보이지 않는 빈 줄/공백이 들어가면 HTTP 헤더 전송이 깨질 수 있다. 순수 PHP 파일(클래스 정의 등)은
?> 안 쓰는 게 표준 관행.3 print vs echo — 출력 두 가지 방법
print
- 인자 1개만
- 반환값 1 (= 표현식)
- 괄호 선택
print "안녕";
echo
- 인자 여러 개 (콤마로 연결)
- 반환값 없음 (= 문장)
- 약간 더 빠름
echo "안녕", " ", "하세요";
<?php print "안녕하세요"; // OK print "안녕", " ", "하세요"; // ✕ 에러 echo "안녕하세요"; // OK echo "안녕", " ", "하세요"; // OK — 콤마로 여러 개 echo "안녕" . " " . "하세요"; // OK — 문자열 연결 (.) ?>
💡 실무 권장 — 대부분
echo를 쓴다. 다중 인자 가능 + 약간 더 빠름. print는 삼항 연산자 안에서 출력하고 싶을 때(반환값이 필요할 때) 가끔 쓴다.반응형
4 HTML 임베딩 — 줄바꿈은 <br>
PHP의 print "안녕"은 그냥 글자만 출력한다. 줄을 바꾸려면 HTML의 <br>을 함께 출력해야 한다 (왜냐하면 결과는 HTML로 변환되기 때문).
<?php print "첫 줄"; print "<br>"; // HTML 줄바꿈 태그 print "두 번째 줄"; print "\n"; // 줄바꿈 — 하지만 브라우저에선 무시됨 // (소스 보기에서만 보임) ?>
결과 — \n은 안 먹히고 <br>만 줄바꿈
첫 줄
두 번째 줄
두 번째 줄
5 주석 3가지
<?php echo "안녕"; // C++ 스타일 한 줄 주석 echo "안녕"; # 셸 스타일 한 줄 주석 /* 여러 줄 주석 여기에 길게 설명 가능 */ echo "안녕"; ?> <!-- HTML 주석 — 브라우저에 전송됨 (소스 보기로 노출!) -->
⚠ 주석 노출 주의 — PHP 주석(
//, #, /* */)은 서버에서 제거되지만, HTML 주석(<!-- -->)은 브라우저로 그대로 전송된다. 비밀스러운 내용을 HTML 주석에 쓰면 안 된다.6 실행 환경 — XAMPP / WAMP / MAMP
PHP는 브라우저에 직접 열어선 안 된다(파일을 열면 코드만 보임). 웹 서버를 통해서 실행해야 한다. 가장 쉬운 방법은 XAMPP(Win/Mac/Linux), WAMP(Win), MAMP(Mac) 같은 통합 패키지.
| 패키지 | 구성 | 특징 |
|---|---|---|
| XAMPP | X(크로스플랫폼) + Apache + MariaDB + PHP + Perl | 가장 인기, 모든 OS |
| WAMP | Windows + Apache + MySQL + PHP | Windows 전용 |
| MAMP | Mac + Apache + MySQL + PHP | Mac 전용 |
| LAMP | Linux + Apache + MySQL + PHP | 리눅스 서버 표준 |
실행 흐름
- XAMPP 설치 → Apache 시작
- 파일을
htdocs폴더에 저장 (예:htdocs/Start.php) - 브라우저에서
http://localhost/Start.php접속 - "안녕하세요" 출력
📌 file:// 로 열면 안 됨 —
file:///D:/php-start/Start.php처럼 직접 파일을 열면 PHP가 실행되지 않고 코드 자체가 그대로 보인다. 반드시 http://localhost/... 형태로 접속.7 자주 하는 실수
| 증상 | 원인 | 해결 |
|---|---|---|
| 코드가 그대로 보임 | file://로 열거나 서버 미실행 | XAMPP 시작 + http://localhost 접속 |
| 줄바꿈이 안 됨 | \n만 사용 | <br> 사용 (HTML 출력) |
| ; 누락 에러 | 각 문장 끝 ; 빠짐 | 모든 문장 끝에 ; 붙이기 |
| 한글 깨짐 | 파일 인코딩 불일치 | UTF-8 + meta charset="UTF-8" |
| print의 콤마 사용 | print는 인자 1개만 | echo로 바꾸거나 . 연산자로 연결 |
| ?> 뒤 빈 줄로 헤더 깨짐 | 출력 후 헤더 변경 시도 | ?> 생략 (마지막 PHP 파일) |
8 핵심 한 줄 요약
PHP — FIRST STEPS
실행 위치서버 (브라우저 X) — XAMPP/Apache
파일 확장자.php
PHP 태그<?php ... ?>
출력echo (다중 인자) / print (단일 인자)
줄바꿈<br> (HTML 태그) — \n은 무시
문장 끝; (세미콜론 필수)
주석// 또는 # / /* ... */
접속 URLhttp://localhost/파일.php
Tags
#PHP #print #echo #phpStart #htmlEmbedding #phpTag #서버사이드 #XAMPP #localhost #Apache #기본문법 #티스토리
▼ 티스토리 태그 입력란 복사용
PHP, print, echo, phpStart, htmlEmbedding, phpTag, 서버사이드, XAMPP, localhost, Apache, 기본문법, 티스토리
반응형
'php' 카테고리의 다른 글
| PHP 제어문 — if · switch · for · while · foreach 완전 정리 (0) | 2026.06.11 |
|---|---|
| PHP 변수 · 연산자 · 연관배열 · explode 완전 정리 (0) | 2026.06.11 |
| XML 구조 + BookApp CRUD UI 완전 정리 (0) | 2026.06.11 |
| jQuery Chart 심화 — 막대 · 버블 · 파이 + Native Form 완전 정리 (0) | 2026.06.11 |
| jQuery 효과 · 이벤트 · jqPlot 차트 완전 정리 (0) | 2026.06.10 |
왕진 블로그

댓글