반응형
리뷰 (Review)
더보기
PHP 기본 문법
- 반복문, 조건문
<html>
<body>
<h1> Grade Info </h1>
<?php
$stu_names = array("park", "kim", "hong", "song", "lee", "lee2", "kim2", "kim3", "kim4", "ji");
$stu_scores = array(90, 56, 78, 98, 54, 77, 100, 87, 99, 44);
for($i=0;$i<10;$i++){
$score = $stu_scores[$i];
if ($score>=90)
$grade = "A";
elseif ($score>=80)
$grade = "B";
elseif ($score>=70)
$grade = "C";
elseif ($score>=60)
$grade = "D";
else
$grade = "F";
if ($score>=60) {
if ($score==100 || $score%10>=5)
$grade = $grade."+";
else
$grade = $grade."0";
}
echo "$stu_names[$i] 점수 : $score 점<br>";
echo "등급 : $grade<br>";
}
?>
</body>
</html>
- switch문
<?php
$score = 84;
switch ($score/10)
{
case 10:
case 9:
$grade = $grade."A";
break;
case 8:
$grade = $grade."B";
break;
case 7:
$grade = $grade."C";
break;
case 6:
$grade = $grade."D";
break;
default:
$grade = $grade."F";
break;
}
if ($score >= 60) {
if ($score==100 || $score%10>=5)
$grade = $grade."+";
else
$grade = $grade."0";
echo "입력된 점수 : $score 점<br>";
echo "등급 : $grade";
}
?>
- 반복문, 조건문, 함수
<html>
<body>
<h1> Grade Info </h1>
<?php
function getgrade($score) {
$grade ="";
if ($score>=90)
$grade = "A";
elseif ($score>=80)
$grade = "B";
elseif ($score>=70)
$grade = "C";
elseif ($score>=60)
$grade = "D";
else
$grade = "F";
if ($score>=60) {
if ($score==100 || $score%10>=5)
$grade = $grade."+";
else
$grade = $grade."0";
}
return $grade;
}
$stu_names = array("park", "kim", "hong", "song", "lee", "lee2", "kim2", "kim3", "kim4", "ji");
$stu_scores = array(90, 56, 78, 98, 54, 77, 100, 87, 99, 44);
for ($i=0; $i<10; $i++) {
$res = getgrade($stu_scores[$i]);
echo "$stu_names[$i] 점수 : $stu_scores[$i] 점<br>";
echo "등급 : $res<br>";
}
?>
</body>
</html>
- 반복문, 배열
<?php
$ary = array(6, 5, 88, 7, 3, 2, 4, 12, 44, 9);
for($j<0; $j<10; $j++) {
for($i=0; $i<9; $i++) {
if($ary[$i] > $ary[$i+1]) {
$tmp = $ary[$i];
$ary[$i] = $ary[$i+1];
$ary[$i+1] = $tmp;
}
}
for ($i=0; $i<10; $i++) {
echo $ary[$i]." ";
}
echo "<br>";
}
?>
PHP
다중 반복문
<?php
echo("--------------------- <br>");
for($a=2; $a<=9; $a++) // 구구단 2단~9단까지 증가하며 반복
{
for($b=1; $b<=9; $b++) // a*1, a*2, ..., a*9까지 증가하며 반복
{
$c = $a * $b;
echo("$a x $b = $c <br>");
}
echo("--------------------- <br>");
}
?>
<?php
for ($a=1; $a<=10; $a++)
{
for ($b=1; $b<=$a; $b++)
{
echo "* ";
}
echo "<br>";
}
?>
2차원 배열
<?php
// 2차원 배열을 이용하여 학생 3명의 5개 과목 성적 합계와 평균 구하기
$score = array( array(88, 98, 96, 77, 63),
array(86, 77, 66, 86, 93),
array(74, 83, 95, 86, 97) );
// 입력된 성적과 배열 인덱스 출력
for ($i=0; $i<3; $i++)
{
for ($j=0; $j<5; $j++)
echo "\$score[$i][$j] = ".$score[$i][$j]."<br>";
echo "<br>";
}
// 학생 3명의 성적 합계와 평균
for($i=0; $i<3; $i++)
{
$sum=0;
for($j=0; $j<5; $j++)
$sum = $sum + $score[$i][$j];
$avg = $sum/5;
$student_num = $i + 1;
echo("$student_num 번 학생의 점수 => 합계 : $sum,
평균 : $avg <br>");
}
?>
내장 함수
- 수학 관련 내장 함수
- abs() - 절댓값 구하기
- sin() - 삼각형의 사인 값 구하기
- cos() - 삼각형의 코사인 값 구하기
- tan() - 삼각형의 탄젠트 값 구하기
- date() - 현재 날짜 구하기
- ceil() - 소수점 아래에서 올린 정수 값 구하기
- floor() - 소수점 아래에서 내린 정수 값 구하기
- round() - 반올림 값 구하기
- log() - 로그 값 구하기
- max() - 최댓값 구하기
- sqrt() - 제곱근 구하기
- rand() - 임의의 난수 생성하기
- pi() - 파이의 근삿값(3.141592) 구하기
- 문자열 관련 내장 함수
- echo() - 문자열 출력하기
- explode() - 특정 문자를 기준으로 문자열 나누기
- str_len() - 문자열의 길이 얻기
- substr() - 문자열에서 일부 문자 추출하기
- nl2br() - 행 바꿈(\n)을 <br> 태그로 바꾸기
- sprintf() - 문자열을 특정 양식에 맞추기
- 파일 관련 내장 함수
- copy() - 파일 복사하기
- mkdir() - 디렉토리 생성하기
- chdir() - 디렉토리 변경하기
- fopen() - 파일 열기
- fread() - 파일 읽기
- fwrite() - 파일 쓰기
<?php
$tel = "010-2777-3333";
echo "\$tel : $tel<br>";
$num_tel = strlen($tel); // 문자열의 길이 계산
echo "\$tel의 길이 : $num_tel<br>";
$tel1 = substr($tel, 0, 3); // 앞에서 세 문자를 가져옴
echo "$tel1<br>";
$tel2 = substr($tel, 4, 4); // 네 번째 문자에서 네 개를 가져옴
echo "$tel2<br>";
$tel3 = substr($tel, 9, 4); // 아홉 번째 문자에서 네 개를 가져옴
echo "$tel3<br>";
$phone = explode("-", $tel); // 하이픈(-)을 기준으로 문자열 분리
echo "전화번호 : $phone[0] $phone[1] $phone[2]<br>";
?>
form과 PHP
POST와 GET의 차이점
- 사용목적
- POST는 서버의 리소스를 생성하거나 업데이트를 할 때 사용
- GET은 서버의 리소스에서 데이터를 요청할 때 사용
- DB로 따지면 POST는 Create에 가깝고, GET은 Select에 가깝다.
- 멱등성 (idempotent)
- GET은 멱등이며 POST는 멱등이 아니다.
- 멱등이란 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미
- POST에는 HTTP 메세지에 Body가 존재하고, GET의 HTTP 메세지에는 Body가 없다.
GET 방식
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
$table1 = "free";
$table2 = "qna";
?>
<h3>자유게시판</h3>
<a href="board_view.php?table=<?=$table1?>&type=list"> 목록보기</a>
<br>
<a href="board_view.php?table=<?=$table1?>&type=write"> 글쓰기</a>
<h3>질의응답 게시판</h3>
<a href="board_view.php?table=<?=$table2?>&type=list"> 목록보기</a>
<br>
<a href="board_view.php?table=<?=$table2?>&type=write"> 글쓰기</a>
</body>
</html>
-----------------------------------------------------------------------
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
$table = $_GET["table"];
$type = $_GET["type"];
if($table == "free")
$board_title = "자유게시판";
if($table == "qna")
$board_title = "질의응답 게시판";
if($type == "list")
$type_title = "목록보기";
if($type == "write")
$type_title = "글쓰기";
?>
<h3>
<?php
echo ">> ".$board_title." | ".$type_title;
?>
</h3>
</body>
</html>
POST 방식
<html>
<head>
<meta charset="utf-8">
<link href="style.css" rel="stylesheet">
</head>
<body>
<form name="form1" method="post" action="view2.php">
<ul>
<li>아 이 디 : <input type="text" name="id"></li>
<li>비밀번호 : <input type="password" name="pass"></li>
<li><input type="submit" value="확인"></li>
</ul>
</form>
</body>
</html>
--------------------------------------------------------------------------
<html>
<head>
<meta charset="utf-8">
<link href="style.css" rel="stylesheet">
</head>
<body>
<?php
$id = $_POST["id"];
$pass = $_POST["pass"];
?>
<ul>
<li>아 이 디 : <?= $id?></li>
<li>비밀번호 : <?= $pass?></li>
</ul>
</body>
</html>
MariaDB와 PHP 연동
PHP - MariaDB(MySQL) 연동 함수
- mysqli_connect() : MariaDB or MySQL 서버에 연결
- mysqli_connect(IP Address, ID, PW, DB명, [Port]);
- mysqli_connect_error() : MariaDB or MySQL 서버에 연결 오류가 발생 시 원인 출력
- mysqli_close() : MariaDB or MySQL 서버 연결된 것을 종료
- mysqli_select_db() : 사용할 데이터베이스 설정
- mysqli_query() : SQL문을 서버에서 실행
- mysqli_query(DB연결객체, Query);
- mysqli_error() : SQL문이 서버에서 실패한 경우 그 원인을 알려줌
- mysqli_num_rows() : Select문의 결과가 몇 개의 행인지 알려줌
- mysqli_fetch_array() : Select문의 실행 결과에서 결과 행을 추출함
<?php
$ip = "192.168.56.195";
$id = "root";
$pw = "1234";
$db = "st_db";
$con = mysqli_connect($ip, $id, $pw, $db); // MariaDB 서버에 연결
if (mysqli_connect_error($con)) { // 연결 오류 발생 시에 원인 출력
echo "mysqli_connect_error()";
}
echo "Connected Successfully";
echo "<table border=\"1\" width=\"100%\" bgcolor=\"#FFFFE1\">";
echo "<tr><td>ST_ID</td><td>Name</td><td>Dept</td><td>Age</td></tr>";
$q = mysqli_query($con, "SELECT * FROM st_info;"); // SQL문 서버에서 실행
for ($c=0; $c<mysqli_num_rows($q); $c++) { // Select문의 결과가 몇 개의 행인지 알려줌
echo "<tr>";
$f = mysqli_fetch_array($q); // Select문의 실행 결과에서 결과 행 추출
echo "<td>$f[0]</td><td>$f[1]</td><td>$f[2]></td><td>$f[3]</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con); // MariaDB 서버 연결 종료
?>
TIF
오늘은 비 오는 날씨만 제외하고는 모든 것이 크게 어려움이 없었던 무난한 하루였다.
물론 주말에 전체적으로 복습함에 있어서 시간을 많이 써야겠지만 말이다.
백준에 solved.ac라는 기능이 있는 것을 오늘 알았다.
단계별로 풀어보기에서 지금 내 머가리로는 도저히 안 풀리는 문제가 실버길래 다행이다 싶었다.
조금씩 조금씩 나아가면 된다. 잘하고 있다.
2022. 08. 30 에 작성된 글입니다.
반응형
'구름 쿠버네티스' 카테고리의 다른 글
구름 쿠버네티스 전문가 과정 6기 - 23일차 (0) | 2023.08.21 |
---|---|
구름 쿠버네티스 전문가 과정 6기 - 22일차 (0) | 2023.08.17 |
구름 쿠버네티스 전문가 과정 6기 - 20일차 (0) | 2023.08.11 |
구름 쿠버네티스 전문가 과정 6기 - 19일차 (0) | 2023.08.08 |
구름 쿠버네티스 전문가 과정 6기 - 18일차 (0) | 2023.08.07 |