웹 페이지
PHP는 초기 시작은 웹 사이트를 쉽게 개발할 수 있는 C 언어 스타일의 서버 사이드 스크립트입니다.
PHP는 다양 데이터를 처리하여 웹 사이트로 화면을 출력할 수 있습니다. 전 세계 수많은 웹 사이트는 이미 PHP로 개발, 운영되고 있습니다.
19.1 페이지 출력 기존 웹 페이지는 HTML 마크업과 .htm 확장자를 가지고 있습니다. 또한 이러한 웹 페이지들을 웹 서버는 클라이언트 브라우저로 전달하고 화면을 출력하게 됩니다.
PHP는 HTML과 궁합이 잘 맞는 개발 언어 중 하나입니다. 기존 HTML 페이지 안 어디에서든지 <?php ~~ ?>를 삽입하게 되면 웹 서버가 PHP 코드를 인식하여 동적으로 처리합니다.
지금까지 배운 문법과 구조를 쉽게 기존 페이지에 적용할 수 있습니다.
예제 파일 web-01.php
화면 출력)
위 예제를 보면 웹 서버가 web-01.php html 페이지를 브라우저로 전송하기 전에 <?php ~ ?> 영역을 스크립트 처리하여 브라우저로 전송하게 됩니다.
19.2 템플릿 작업
PHP와 HTML이 혼용되어 있는 코드가 있는 반면 순수한 PHP 코드도 있습니다.
예전에는 HTML 페이지 안에 PHP코드를 삽입하여 개발하는 형태로 작업을 많이 했습니다. 하지만 HTML 안에 PHP 코드가 들어 있으면 가독성이 떨어지고 유지보수도 힘듭니다. 또한 디자이너와 협업하여 개발하기에도 어려운 부분이 있었습니다.
요즘 트렌드는 MVC 패턴이라고 해서 화면에 보이는 view 영역 (HTML)과 데이터와 연산을 처리하는 M/C(PHP)를 분리하여 작업하는 것을 선호합니다.
PHP와 HTML을 분리하여 가장 간단하게 웹 페이지를 표현하는 방법은 HTML을 템플릿화하여 처리하는 것입니다. 화면에 보이는 부분을 HTML 파일로 저장해 놓고, PHP에서 파일로 읽어 화면에 출력하는 것입니다.
예제 파일 web-02.php
<?php class JinyFiles { public function fileLoad($filename) { if ($fp = fopen($filename, “r”)){ if ($fp){ while (!feof ($fp)) $buffer .= fgets($fp, 4096); fclose($fp); return $buffer; } } else { echo “파일을 읽어올 수 없습니다.”; } } }
$temp = new JinyFiles();
echo $temp->fileLoad("./temp.htm");
?>
예제 파일 temp.htm
안녕하세요. jinyPHP입니다.
화면 출력)
위의 예는 간단한 html 뷰와 코드를 분리한 예제입니다. 외부에 별도로 생성한 view용 html 파일을 읽어서 화면에 출력합니다. 이러한 방식을 통해 php 코드와 html 을 분리하여 관리합니다.
19.3 코드 치환
템플릿을 이용하여 HTML 파일 그대로 내용을 다시 재출력하는 것입니다.
하지만 이러한 방식의 문제는 동적인 데이터를 가지고 있는 HTML경우에는 데이터 처리가 어렵다는 것입니다. 그래서 이전에는 html 코드 안에 <?php ~ ?>를 삽입하여 코드를 처리했습니다.
템플릿에서 동적으로 처리하고자 하는 내용이 있다고 하면 치환 키워드를 만들어 사용합니다. 기존 html 파일에 특정한 키워드를 만들어 놓고, PHP에서 화면을 출력하기 전에 치환 키워드를 동적 데이터로 변경하는 방식입니다.
예제 파일 web-03.php <?php class JinyFiles { public function fileLoad($filename) { if ($fp = fopen($filename, “r”)){ if ($fp){ while (!feof ($fp)) $buffer .= fgets($fp, 4096); fclose($fp); return $buffer; } } else { echo “파일을 읽어올 수 없습니다.”; } } }
$temp = new JinyFiles();
$body = $temp->fileLoad("./temp-02.htm");
// 치환 키워드를 변경합니다. $name = “jiny LEE”; $body = str_replace(“{(userName)}”,$name,$body);
echo $body; ?>
예제 파일 temp-02.htm
안녕하세요. 이름은 {(userName)} 입니다.
화면 출력
위의 예제를 보면 템플릿 파일을 읽어서 변수에 저장합니다. 변수는 html 본문 코드를 담고 있습니다.
문자열을 치환하는 내부 함수를 통해 치환 키워드를 찾아서 데이터로 변경한 후 화면에 출력합니다.
str_replace() 함수는 문자열의 일치되는 내용을 찾아서 다른 문자로 바꿔주는 함수입니다.
$body = str_replace(치환 문자, 대체 문자, $body);
가변적으로 처리해야 하는 내용은 템플릿에서 치환 문자로 넣어둡니다. PHP는 템플릿 파일을 읽은 후에 치환 문자를 실제적인 데이터로 변경 후 화면에 출력하면 가변적인 화면을 구현할 수 있습니다.
19.4 폼 입력
HTML의 <form> 태그는 브라우저를 통해 사용자 입력을 받아서 서버로 전송하는 기능을 합니다. 폼 요소는 HTML 에서 예전부터 사용을 해오던 클라이언트와 서버 간 통신 방법 중 하나입니다.
폼 태그를 사용하는 형식은 아래와 같습니다.