블로그 이미지
조이키트 블로그
아두이노, 라즈베리파이, 반도체 센서/모듈 활용

calendar

1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

Notice

250x250
2023. 8. 29. 01:58 PHP
728x90
반응형

웹에서 파일을 업로드하려면 <form> 태그의 enctype 속성을 multipart/form-data로 설정해야 한다. 그리고 <input> 태그의 type 속성을 file로 설정해야 업로드할 파일을 선택하는 양식을 생성할 수 있다. name 속성을 upload로 설정하면 업로드한 파일이 $_POST["upload"] 배열에 저장된다.

<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <form name="form1" method="post" action="view8.php" enctype="multipart/form-data">
            <ul>
                <li>이미지 업로드 : <input type="file" name="upload"></li>
                <li>설명 : <textarea name="comment" rows="3" cols="60"></textarea></li>
                <li><input type="submit" value="확인"></li>
            </ul>
        </form>
    </body>
</html>

업로드된 이미지에 대한 설명을 입력할 수 있는 텍스트 영역을 생성하기 위해 <textarea>태그를 사용하고 name 속성은 comment로 설정한다. <확인>을 클릭하면 view8.php 파일로 이동한다.

파일 선택을 하고 텍스트 영역에 이미지에 대한 설명을 입력한 다음 확인을 클릭하면 

다음과 같이 나타난다.

view8.php 파일의 소스 코드는 다음과 같다.

<html>
<head>
<meta charset="utf-8">
<link href="style.css" rel="stylesheet">
</head>
<body>
<?php
	$file_dir = "C:/xampp/htdocs/07/img/";
	$file_path = $file_dir.$_FILES["upload"]["name"];
	if(move_uploaded_file($_FILES["upload"]["tmp_name"], $file_path)) {
		$img_path = "img/".$_FILES["upload"]["name"];
?>
	<ul>
		<li><img src="<?= $img_path?>"></li>
		<li><?= $_POST["comment"]?></li>
	</ul>
<?php
	}
	else {
		echo "파일 업로드 오류가 발생했습니다!!!";
	}
?>
</body>
</html>

업로드된 이미지 파일을 저장할 경로가 $file_dir에 설정되어 있다.

$_FILES["upload"]["name"]은 업로드된 파일명을 나타낸다. 따라서 $file_path에는 저장할 폴더와 파일명을 포함한 경로가 저장된다.

move_uploaded_file($_FILES["upload"]["tmp_name"], $file_path)는 업로드된 파일을 설정한 파일 경로에 저장한다는 의미이다. 여기서 $_FILES["upload"]["tmp_name"]은 서버에 임시로 저장된 업로드된 파일명이고 $file_path는 업로드된 파일을 저장할 경로를 의미한다.

$img_path는 <img> 태그의 src 속성으로 설정한 폴더와 이미지 파일명을 포함한 경로를 의미한다.

$_POST["comment"]는 사용자가 텍스트 영역에 입력한 내용을 의미한다.

move_uploaded_file() 함수는 HTTP POST를 이용하여 업로드된 파일을 지정된 경로에 저장할 때 사용한다. 만약 해당 경로에 동일한 파일이 있으면 덮어쓰기를 한다.

728x90
반응형
posted by 조이키트 블로그
2023. 8. 28. 17:49 PHP
728x90
반응형

선택 박스는 회원가입 양식, 게시판, 쇼핑몰 등에서 주로 사용된다.

<html>
    <head>
        <meta charset="utf-8">
        <link href="style.css" rel="stylesheet">
    </head>
    <body>
        <form name="form1" method="post" action="view6.php">
            <ul>
                <li>이메일 : <input type="text" name="email1">
                <select name="email2">
                    <option value="" selected>선택하세요!</option>
                    <option value="naver.com">naver.com</option>
                    <option value="google.com">gmail.com</option>
                    <option value="hanmail.com">hanmail.net</option>
                </select>
                </li>
                <li><input type="submit" value="확인"></li>
            </ul>
        </form>
    </body>
</html>

위 코드를 실행하면 다음과 같다.

<확인>을 클릭하면 action 속성에 설정된 view6.php 파일로 이동한다.

<html>
    <head>
        <meta charset="utf-8">
        <link href="style.css" rel="stylesheet">
    </head>
    <body>
    <?php
                $email1 = $_POST["email1"];
                $email2 = $_POST["email2"];
                ?>
        <ul>
            <li>이메일 : <?php echo $email1."@".$email2; ?></li>
        </ul>
    </body>
</html>

 

728x90
반응형
posted by 조이키트 블로그
2023. 8. 28. 17:21 PHP
728x90
반응형

라디오 버튼과 달리 체크박스는 여러 항목 중에서 동시에 여러개를 선택하도록 할 때 사용한다. 

<html>
    <head>
        <meta charset="utf-8">
        <link href="style.css" rel="stylesheet">
    </head>
    <body>
        <form name="form1" method="post" action="view5.php">
            <h3>당신의 취미는?</h3>
            <ul>
                <li>영화감상 <input type="checkbox" name="hobby[]" value="영화감상"></li>
                <li>맛집탐방 <input type="checkbox" name="hobby[]" value="맛집탐방" checked></li>
                <li>독서 <input type="checkbox" name="hobby[]" value="독서"></li>
                <li>요가 <input type="checkbox" name="hobby[]" value="요가"></li>
                <li>축구 <input type="checkbox" name="hobby[]" value="축구"></li>
                <li><input type="submit" value="확인"></li>
            </ul>
        </form>
    </body>
</html>

출력 결과

체크박스를 생성하려면 <input> 태그의 type 속성을 checkbox로 설정해야 한다. 그리고 중복 선택이 가능하도록 name 속성은 배열(hobby[]) 로 설정하고, value 속성에는 화면에 출력할 각 항목을 설정한다. 체크박스에서 선택된 항목의 value 속성값은 $_POST["hobby"]로 전달된다. checked 속성은 초깃값을 의미하며 실행 결과를 보면 맛집탐방이 초깃값이다.

체크박스의 항목을 선택하고 <확인>을 클릭하면 action속성에 설정한 view5.php 파일로 이동한다.

<html>
    <head>
        <meta charset="utf-8">
        <link href="style.css" rel="stylesheet">
    </head>
    <body>
        <ul>
            <li>
                <?php
                $num = count($_POST["hobby"]);
                for($i = 0; $i < $num; $i++)
                {
                    echo $_POST["hobby"][$i];
                    if($i != $num - 1)
                    echo ", ";
                }
                ?>
            </li>
        </ul>
    </body>
</html>

$_POST["hobby"]에는 체크박스의 name 속성으로 설정한 hobby[]의 value 속성 값이 배열 형태로 저장된다. 즉 체크박스 항목의 value 속성값이 $_POST["hobby"][0], $_POST["hobby"][1]...에 차례대로 전달된다. count() 함수는 배열의 개수를 세는데 사용하고 변수 $num에는 선택된 체크박스 항목의 개수가 저장된다.

for문은 배열의 개수만큼 반복 수행한다.

체크박스에서 선택된 항목의 value 속성값을 화면에 출력한다.

항목 사이에 쉼표(,)를 넣어 출력하기 위해 if 구문을 이용한다. 항목의 마지막이 아니라면 항목 사이에 쉼표를 출력하라는 의미이다.

 

영화감상, 맛집탐방, 독서
728x90
반응형
posted by 조이키트 블로그
2023. 8. 22. 15:40 PHP
728x90
반응형
<?php
//  놀이공원 입장객의 나이와 입장권의 종류에 따라 요금을 계산하는 프로그램
function child_rate($cat) // 어린이 요금
{
    if($cat == "입장권")
    $price = 13000;
elseif($cat == "자유이용권 주간") 
$price = 25000;
elseif($cat == "자유이용권 야간")
$price = 22000;
else
$price = 22000;
return $price;
}

function youth_rate($cat) // 청소년 요금
{
    if($cat == "입장권")
    $price = 15000;
elseif($cat == "자유이용권 주간")
$price = 28000;
elseif($cat == "자유이용권 야간")
$price = 25000;
else
$price = 25000;
return $price;
}

function adult_rate($cat) // 어른 요금
{
    if($cat == "입장권")
    $price = 18000;
elseif($cat == "자유이용권 주간")
$price = 32000;
elseif($cat == "자유이용권 야간")
$price = 29000;
else
$price = 29000;
return $price;
}

$age = 18;
$category = "자유이용권 야간";

if($age >= 0 && $age <= 3)
$fee = 0;
elseif($age >= 4 && $age <= 10)
$fee = child_rate($category);
elseif($age >= 11 && $age <=17)
$fee = youth_rate($category);
else
$fee = adult_rate($category);

echo "입장권 종류 : $category<br>";
echo "입장객 나이 : $age<br>";
echo "입장료 : $fee 원";
?>

출력 결과

입장권 종류 : 자유이용권 야간
입장객 나이 : 18
입장료 : 29000
728x90
반응형
posted by 조이키트 블로그
2023. 8. 22. 15:12 PHP
728x90
반응형
<?php
// 함수를 이용하여 3개의 수 중에서 가장 큰 수
function maxTwo($i, $j)
{
    if($i > $j)
    return $i;
else
return $j;
}

function maxThree($x, $y, $z)
{
    return maxTwo(maxTwo($x,$y), maxTwo($y, $z));
}

$a = 10;
$b = 5;
$c = 7;

$max_num = maxThree($a, $b, $c);
echo "$a, $b, $c 중 가장 큰 수 : $max_num";
?>

출력 결과

10, 5, 7 중 가장 큰 수 : 10
728x90
반응형
posted by 조이키트 블로그
2023. 8. 22. 15:00 PHP
728x90
반응형
<?php
// 함수를 이용한 두 수의 최대공약수
function computeMaxGoing($x, $y)
{
    if($x > $y)
    $small = $y;
else 
$small = $x;

for($i = 1; $i <= $small; $i++)
{
    if($x%$i == 0 and $y%$i == 0)
    $result = $i;
}
return $result;
}

$num1 = 4;
$num2 = 88;

$max_gong = computeMaxGoing($num1, $num2);
echo "{$num1}{$num2}의 최대공약수 : $max_gong";

?>

출력 결과

488의 최대공약수 : 4
728x90
반응형
posted by 조이키트 블로그
2023. 8. 22. 10:56 PHP
728x90
반응형
<?php
$tel = "010-1234-5678";
echo "\$tel : $tel<br>";
$num_tel = strlen($tel);  //문자열의 길이 계산

echo "\$tel의 길이 : $num_tel<br>";

$tel1 = substr($tel, 0, 3); // 앞에서 3개의 문자 가져오기
echo "$tel1<br>"; 
$tel2 = substr($tel, 4, 4); // 네 번째 문자에서 4개의 문자 가져오기
echo "$tel2<br>";
$tel3 = substr($tel, 9, 4); // 아홉 번째 문자에서 4개의 문자 가져오기
echo "$tel3<br>";

$phone = explode("-", $tel); //하이픈(-)을 기준으로 문자열 분리
echo "전화번호 : $phone[0] $phone[1] $phone[2]<br>";
?>

전화 번호

$tel : 010-1234-5678
$tel의 길이 : 13
010
1234
5678
전화번호 : 010 1234 5678
728x90
반응형
posted by 조이키트 블로그
2023. 8. 22. 10:34 PHP
728x90
반응형
<?php
function cal_fee1($day, $age) // 일반 입장권 요금 구하기
{
    if($day == "주간")
    {
        if ($age > 12 && $age < 65)
        $money = 26000;
        else
        $money = 19000;
    }
    else
    {
        if ($age > 12 && $age < 65)
        $money = 21000;
        else
        $money = 16000;
    }
    return $money;
}

function cal_fee2($day, $age) // 자유 이용권 요금 구하기
{
    if($day == "주간")
    {
        if($age > 12 && $age <65)
        $money = 33000;
        else 
        $money = 24000;
    }
    else
    {
        if($age > 12 && $age < 65)
        $money = 28000;
        else
        $money = 21000;
    }
    return $money;
}

function cal_fee3($day, $age) // 2일 자유 이용권
{
    if($age > 12 && $age < 65)
    $money = 55000;
    else 
    $money = 40000;
    return $money;
}

function cal_fee4($day, $age) // 콤비권
{
    if($age > 12 && $age < 65)
    $money = 54000;
    else
    $money = 40000;
    return $money;
}

$category = 2; //입장권 종류
$age = 11;
$day = "야간";

if($category == 1)
$fee = cal_fee1($day, $age);
elseif($category == 2)
$fee = cal_fee2($day, $age);
elseif($category == 3)
$fee = cal_fee3($age);
else
$fee = cal_fee4($age);

if($category == 1)
$cat = "일반 입장권";
elseif($category == 2)
$cat = "자유 이용권";
elseif($category == 3)
$cat = "2일 자유 이용권";
else
$cat = "콤비권";

echo "- 구분 : $cat<br>";

if($category == 1 || $category == 2)
echo "- 주야간 : $day<br>";

echo "- 나이 : $age 세<br>";
echo "- 입장료 : $fee 원";
?>

출력 결과

- 구분 : 자유 이용권
- 주야간 : 야간
- 나이 : 11 세
- 입장료 : 21000
728x90
반응형
posted by 조이키트 블로그
2023. 8. 21. 12:09 PHP
728x90
반응형
<?php
function sum($a, $b)
{
    $sum = 0;
    while ($a <= $b)
    {
        $sum = $sum + $a;
        $a++;
    }
    return $sum;
}

$from = 1;
$to = 100;

$total = sum($from, $to);
echo("$from 에서 $to 까지의 합 : $total");
?>

출력 결과

1 에서 100 까지의 합 : 5050
728x90
반응형
posted by 조이키트 블로그
2023. 8. 21. 12:04 PHP
728x90
반응형
<?php
function plus($a, $b)
{
    $c = $a + $b;
    return $c;
}

$result1 = plus(10, 20);
echo $result1."<br>";

$result2 = plus(200, 300);
echo $result2."<br>";
?>

출력 결과

30
500
728x90
반응형
posted by 조이키트 블로그
2023. 8. 21. 11:34 PHP
728x90
반응형
<?php
// 태그와 배열을 이용한 구구단 표
echo "<table border = 1>";
echo "<tr align = center>";
echo "<th width = 100>2단</th>";
echo "<th width = 100>3단</th>";
echo "<th width = 100>4단</th>";
echo "<th width = 100>5단</th>";
echo "<th width = 100>6단</th>";
echo "<th width = 100>7단</th>";
echo "<th width = 100>8단</th>";
echo "<th width = 100>9단</th>";
echo "</tr>";

for($i = 0; $i <= 8; $i++)
for($j = 0; $j <= 9; $j++)
$result[$i][$j] = ($i + 2)*($j + 1);
    


for($j = 0; $j <= 8; $j++)
{
    echo "<tr align = center>";
    for($i = 0; $i <= 7; $i++)
    {
        $a = $i + 2;
        $b = $j + 1;
        $c = $result[$i][$j];
        echo "<td>$a x $b = $c</td>";
    }
    echo "</tr>";
}
echo"</table>";
?>

출력 결과

728x90
반응형
posted by 조이키트 블로그
2023. 8. 20. 16:06 PHP
728x90
반응형
<?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>";
    
}
?>

출력 결과

$score[0][0] = 88
$score[0][1] = 98
$score[0][2] = 96
$score[0][3] = 77
$score[0][4] = 63

$score[1][0] = 86
$score[1][1] = 77
$score[1][2] = 66
$score[1][3] = 86
$score[1][4] = 93

$score[2][0] = 74
$score[2][1] = 83
$score[2][2] = 95
$score[2][3] = 86
$score[2][4] = 97

1회 수강생의 점수 => 합계 : 422, 평균 : 84.4
2회 수강생의 점수 => 합계 : 408, 평균 : 81.6
3회 수강생의 점수 => 합계 : 435, 평균 : 87
728x90
반응형
posted by 조이키트 블로그
2023. 8. 20. 15:45 PHP
728x90
반응형
<?php
// 오름차순으로 버블 정렬하기
$num = array(15, 13, 9, 7, 6, 12, 19, 30, 28, 26);
$count = 10;
echo "정렬 전 : ";
for($a = 0; $a < 10; $a++) //정렬되기 전 배열의 원소 출력
{
    echo $num[$a]." ";  
}
echo "<br>";

for($i = $count - 2; $i >= 0; $i--) //$i는 8부터 0까지 1씩 감소
{
    for($j = 0; $j <= $i; $j++) // $j는 0부터 $i까지 1씩 증가
    {
        if($num[$j] > $num[$j+1]) // 인접한 두 수 비교
        {
            $tmp = $num[$j]; // 앞의 데이터를 $tmp에 잠시 대피
            $num[$j] = $num[$j+1]; // 뒤의 데이터를 앞의 배열 원소에 저장
            $num[$j+1] = $tmp; // $tmp를 뒤의 배열 원소에 저장
        }
    }
}

echo "버블 정렬(오름차순) 후 : ";
for($a = 0; $a < 10; $a++) //버블 정렬 후 배열의 원소 출력
echo $num[$a]." ";
?>

출력 결과

정렬 전 : 15 13 9 7 6 12 19 30 28 26
버블 정렬(오름차순) 후 : 6 7 9 12 13 15 19 26 28 30
728x90
반응형
posted by 조이키트 블로그
2023. 8. 20. 13:41 PHP
728x90
반응형

 

<?php
// 배열을 이용하여 성적의 합계와 평균 구하기
$score[0] = 90; // 영어성적
$score[1] = 80; // 컴퓨터 성적
$score[2] = 85; // 프로그래밍
$score[3] = 95; // 수학 성적
$score[4] = 93; // 알고리즘

$sum = 0;
for($a = 0; $a <= 4; $a++)
{
    $sum = $sum + $score[$a];
}
$avg = $sum/5;
echo "과목 점수 : $score[0], $score[1], $score[2], $score[3], $score[4]<br>";
echo "합계 : $sum, 평균 : $avg <br>";
?>

출력 결과

과목 점수 : 90, 80, 85, 95, 93
합계 : 443, 평균 : 88.6
728x90
반응형
posted by 조이키트 블로그
prev 1 next