PHP란 무엇인가? PHP 서두
웹 브라우저가 설치되어 있는 컴퓨터와, 웹서버와 PHP 소프트웨어가 설치되어 있는 서버 컴퓨터가 있다.
이 상태에서 웹 브라우저와 서버는 어떻게 상호작용할까?
웹브라우저의 주소창에 index.html 파일을 입력하면 요청을 받은 서버 컴퓨터에 설치되어 있는 웹 서버 소프트웨어는 입력된 주소를 보고, 확장자가 html 임을 확인하여 자신이 처리할 수 있다는 걸 알기 때문에 자신의 디렉토리에서 파일을 찾아 웹브라우저에게 전송해준다.
하지만, 웹브라우저가 주소창에 index.php 파일을 입력하면 웹서버는 확장자가 php인 파일은 자신의 소관이 아님을 알기 때문에 파일을 처리할 수없다. 따라서 웹 서버는 PHP 프로그램에게 일을 위임한다.
PHP 프로그램은 자신의 디렉토리에서 파일을 찾아 php의 문법에 따라 해석을 한 뒤 html 파일을 찍어낸 다음 만들어진 html 파일을 웹서버에게 전송하고, 웹서버는 웹브라우저에게 전송한다.
확장자가 html이라면 웹서버는 파일을 그대로 읽어서 전송해준다, html은 언제나 똑같은 정보를 보여준다.
확장자가 php라면 웹서버가 위임한 PHP는 php 문법을 해석해서 동작하며, 그 결과를 웹서버에게 보내면 웹서버는 웹브라우저에게 파일을 전송한다.
html은 언제나 똑같이 동작하지만 php는 문법에 따라 웹을 리로드 할 때마다 달라지는 동적인 웹페이지를 생성할 수 있다. html은 정적이지만 php는 동적으로 작동한다.
php 문법의 시작을 알리는 기호: <?php
문장을 출력할 땐 echo 혹은 print를 사용하며 문장이 끝나면 세미콜론을 표기한다.
<?php //php의 시작
echo date('Y-m-d H:i:s'); //php의 문법(출력)
?> //php의 끝
안쪽은 php의 문법에 따라, 바깥쪽은 html의 문법에 따라 출력된다.
PHP와 데이터타입 : 문자와 숫자
PHP라는 언어를 이용해서 어떻게 계산을 하고 숫자를 표현하며, 문자를 표현할 수 있을까?
(1)숫자
-표현하는 방식 : echo, print
-가공하는 방식 : + , * , - , / 와 같은 연산자를 사용한다.
<body>
<h1>1+1</h1> //1+1이 출력된다
<?php
echo 1+1; //숫자 2를 출력하게 된다.
?>
</body>
</html>
(2)문자
-String으로 문자를 표현한다.
-표현하는 방식 : echo ‘hello’ 혹은 echo “hello” 혹은 "hello \"w\"orld” 혹은 “hello ‘w’orld”
-문자와 문자를 결합할 땐 .를 사용한다 (concatenation operator)
-문자열의 길이를 알고싶을 땐 strlen 함수를 사용한다. ex)strlen(”hello world”)는 11이 출력된다.
<html>
<body>
<h1>String & String operator</h1>
<?php
echo 'hello \"w\"orld';
?>
<h2>concatenation operator</h2>
<?php
echo "hello "."world"; //좌항과 우항을 결합한다.
?>
<h2>String length function</h2>
<?php
echo strlen("hello world"); //문자열의 길이를 출력한다
?>
</body>
</html>
PHP와 변수, 파라미터
변수 앞에는 $ 기호를 붙인다.
ex) $name = "철수"; $number = 7;
<body>
<h1>variable</h1>
<?php
$a = 10;
echo $a+2; //12가 출력된다
?>
</body>
</html>
$_GET[ ]
php는 파라미터를 사용하여 주소창의 url에 입력하는 입력 값에 따라 다른 출력값을 페이지에 보여줄 수 있는
약속된 방법이 있다.
<body>
안녕하세요. <?php echo $_GET['name']; ?> 님
</body>
위와 같이 url에 입력되는 name 값을 파라미터라고 한다.
이렇게 url에 파라미터 입력값을 주고, echo 명령에 따라 출력 결과를 달리할 수 있다.
입력값을 2개 받고 싶다면? 입력값과 입력값을 구분할 때 사용하는 구분자 &를 사용한다.
<body>
안녕하세요. <?php echo $_GET['name']; ?> 님.
<?php echo $_GET['address']; ?> 주소입니다.
</body>
'WEB > PHP' 카테고리의 다른 글
PHP(2) PHP 기초: 함수, 조건문 (0) | 2022.01.24 |
---|