오늘도 php를 배워보겠습니다.
함수란 보통 프로그래밍에서 어떤 역할을 해주는것으로 사용자를 더 편하게만들어줍니다.
문자열의 길이를 정수로 나타내주는 함수입니다.
<!DOCTYPE html>
<html>
<head>
<body>
<h1>function</h1>
<?php
$str = "simcurity is so smart";
echo $str;
?>
<h2>strlen()</h2>
<?php
echo strlen($str);
?>
</body>
</head>
</html>
strlen() 함수로 문자열 길이 확인
html에서는 <br>
로 줄바꿈을 하지만 php에서는 줄을 띄운다고 인식하지 못합니다. 그래서 nl2br() 함수를 써야합니다.
<!DOCTYPE html>
<html>
<head>
<body>
<h1>function</h1>
<?php
$str = "simcurity is
so smart";
echo $str;
?>
<h2>nl2br()</h2>
<?php
echo nl2br($str);
?>
</body>
</head>
</html>
file_get_contents() 함수를 이용해 저번 시간에 만든 HTML,CSS,JAVASCRIPT를 클릭과 동시에 본문의 내용도 변경시켜보겠습니다.
일단 /var/www/html/data라는 디렉터리를 생성해주고 그 곳에 HTML, CSS, JavaScript라는 텍스트 파일을 만들고 본문 내용을 넣었습니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<h1>WEB</h1>
<ol>
<li><a href="index.php?id=HTML">HTML</a></li>
<li><a href="index.php?id=CSS">CSS</a></li>
<li><a href="index.php?id=JavaScript">JavaScript</a></li>
</ol>
<h2>
<?php
echo $_GET['id'];
?>
</h2>
<?php
echo file_get_contents("data/html");
?>
</body>
</html>
본문에 /data/html 파일의 내용을 가져왔습니다.
그럼 이제 html, css, javascript를 누를 때 마다 해당 내용을 가져오게 해보겠습니다.
마지막 php호출 부분에서
echo file_get_contents("data/".$_GET['id']);
수정
id 파라미터 값에 따라 본문의 내용을 가져오는 모습
하지만, 해당 방법은 보안 상 이 코드를 그대로 쓰면 안된다고 한다. 이유는 아마 파라미터 조작에 의한 접근 시 위험할 수 있기 때문일 것 같습니다.
TRUE or FALSE 라는 두가지의 값만 가지는 데이터 타입
var_dump() 함수는 데이터 타입과 크기를 동시에 알려줍니다. echo 대신에 작성
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<title></title>
</head>
<body>
<h1>comparison</h1>
<h2>1==1</h2>
<?php
var_dump(1==1);
?>
<h3>1<2</h3>
<?php
var_dump(1<2);
?>
<h4>1>3</h4>
<?php
var_dump(1>2);
?>
</body>
</html>
if(true), if(false)로 동작 순서를 변환이 가능합니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<h1>conditional</h1>
<h2>if</h2>
<?php
echo '1<br>';
if(false){
echo '2<br>';
}
echo '3<br>';
?>
</body>
</html>
if(false){
echo '2<br>';
}
else {
echo '2-2<br>';
}
isset() 함수는 함수에 값으로 들어온 것이 값을 가지고 있느냐 없느냐로 true or false가 반환됩니다.
그래서, id값이 있을 때, 없을 때를 구분하여 페이지를 보여줄 수 있습니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<h1><a href = "index.php">WEB</a></h1>
<ol>
<li><a href="index.php?id=HTML">HTML</a></li>
<li><a href="index.php?id=CSS">CSS</a></li>
<li><a href="index.php?id=JavaScript">JavaScript</a></li>
</ol>
<h2>
<?php
if(isset($_GET['id'])) {
echo $_GET['id'];
} else {
echo "Welcome";
}
?>
</h2>
<?php
if(isset($_GET['id'])){
echo file_get_contents("data/".$_GET['id']);
} else {
echo "Hello PHP";
}
?>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<title></title>
</head>
<body>
<h1>while</h1>
<?php
$i = 0;
echo '1<br>';
while($i < 3){
echo '2<br>';
$i =$i +1;
}
echo '3<br>';
?>
</body>
</html>
반복문을 통해 2를 세 번 출력해보았습니다.
배열은 또 하나의 데이터 타입입니다.
array라는 문자를 쓰고 array_push로 끝에 값을 추가해줍니다.
count는 배열의 크기를 출력해줍니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<h1>array</h1>
<?php
$name = array('se', 'cu', 'ri', 'ty');
echo $name[1].'<br>';
var_dump(count($name));
echo '<br>';
array_push($name, 'sim');
echo $name[4].'<br>';
var_dump(count($name));
?>
</body>
</html>
배열의 1번째 자리 값 출력
배열 길이 출력
배열에 sim 추가
마지막 자리 출력
배열 길이 출력
이번에는 자동으로 data디렉터리의 데이터를 읽어서 페이지에 추가해주는 코드를 짜보겠습니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<h1><a href = "index.php">WEB</a></h1>
<ol>
<?php
$list = scandir("./data");
$i = 0;
while($i<count($list)){
if($list[$i] != '.'){
if($list[$i] != '..') {
echo "<li><a href = \"index.php?id=$list[$i]\">$list[$i]</a></li><br>";
}
}
$i = $i +1;
}
?>
</ol>
<h2>
<?php
if(isset($_GET['id'])){
echo $_GET['id'];
}
else {
echo "Welcome";
}
?>
</h2>
<h3>
<?php
if(isset($_GET['id'])){
echo file_get_contents("data/".$_GET['id']);
} else {
echo "Hello PHP";
}
?>
</body>
</html>
오늘은 여기까지 학습하겠습니다.
참고 : 생활코딩 PHP+MySQL