[ 생활코딩 Web2 - php ] 2. php의 원리/ php 기본 문법 / 함수선언 / 배열 / 조건문 / 반복문
php의 원리
* html 파일 전송 시 (정적)
- 웹 서버에서 html 파일을 요청받으면 그대로 읽어서 그대로 전송함 ( 언제나 똑같은 정보를 보여줌)
* php 파일 전송 시 (동적)
- php 파일을 요청받으면 웹 서버가 자신이 처리할 수 없다는 것을 알고, PHP프로그램에게 위임함
- php파일을 열어보고 <?php 기호가 나오면 그 다음 코드들을 해석해서 동작하게 함
- ?> 가 나오면 해석한 결과를 웹 서버에게 보내고 웹 서버는 웹 브라우저에게 보냄
- 웹 브라우저는 php코드가 없는 순수 html만으로 이루어진 정보를 받음
php의 기본 문법
- php 시작과 끝을 알리는 <?php , ?> 기호
<?php
?>
- 출력문은 echo 함수, 문장의 끝에는 항상 세미콜론(;) 붙여주어야 함
echo 1+2;
- 문자열 연결할 때는 '.' 으로 연결
"Hello"."World!"
- 문자열 길이는 strlen 함수 사용
strlen("Hello World!")
- 변수 선언시 변수 이름 앞 '$' 추가해 선언 , 변수 사용시에도 변수 이름 앞 '$' 추가해 사용
$name = "abcde";
echo "Hello, ".$name;
- php의 url 파라미터는 $_GET['파라미터이름' 통해 얻을 수 있음
<h2>Welcome, <?php echo $_GET['name'];?>!</h2>
- 파라미터 여러개 사용 시 &로 연결함
<h2>Welcome, <?php echo $_GET['name'];?>
who lives in <?php echo $_GET['address'];?>.</h2>
- 파일 읽기 함수 : file_get_contents()
file_get_contents("data/HTML");
- 데이터 타입과 함께 출력해주는 함수 : var_dump()
var_dump(1+1); // int 2
- 디렉토리의 파일 리스트를 가져오는 함수 : scandir()
$list = scandir('./data');
php의 함수 선언
- php의 함수 선언 : function(){}
function print_title()
{
if (isset($_GET['id'])) {
echo $_GET['id'];
} else {
echo "Welcome";
}
}
php의 배열
- php의 배열 : array
$list = array(1,2,3);
- 배열의 개수를 리턴해주는 함수 : count()
count($list)
- 배열에 원소를 추가하는 함수 : array_push() - 첫번째 파라미터에는 배열이 와야함
array_push($list, 4);
php의 조건문
- php의 조건문 : if
if (isset($_GET['id'])) {
echo $_GET['id'];
} else {
echo "Welcome";
}
- 값이 있는지 없는지 확인하는 함수 : isset - if문과 함께 활용
isset($_GET['id'])
php의 반복문
- php의 반복문 : while
$i = 0;
while($i<5){
echo $i;
$i++;
} //01234
- php의 반복문 : for
for($i=0; $i<5; $i++){
echo $i;
} // 01234
- 전체코드
<?php
function print_title()
{
if (isset($_GET['id'])) {
echo $_GET['id'];
} else {
echo "Welcome";
}
}
function print_list(){
$list = scandir('./data');
for ($i = 0; $i < count($list); $i++) {
if ($list[$i] != '.' && $list[$i] != '..') {
echo "<li><a href=\"index.php?id=$list[$i]\">$list[$i]</a></li>";
}
}
}
function print_description(){
if (isset($_GET['id'])) {
echo file_get_contents("data/" . $_GET['id']);
} else {
echo "Hello, php";
}
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title><?php print_title(); ?></title>
</head>
<body>
<h1><a href="index.php">WEB</a></h1>
<ol>
<?php print_list(); ?>
</ol>
<h2>
<?php print_title(); ?>
</h2>
<p> <?php print_description(); ?></p>
</body>
</html>