๐ŸŒ Web/์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ [PHP ์‹ค์Šต]

Kyle99 2022. 9. 18. 23:28

PHP ์‹ค์Šต

PHP๋Š” ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ–ˆ์„ ์‹œ ์›น์„œ๋ฒ„๊ฐ€ PHP์—๊ฒŒ ์ „์†ก์„ ํ•œ๋‹ค.

PHP๋Š” FILE์„ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ ํ•ด์„๋œ PHP๋ฅผ ๋‹ค์‹œ ์›น์„œ๋ฒ„์—๊ฒŒ ์ „์†ก์„ ํ•˜๊ณ ,

์›น์„œ๋ฒ„๋Š” ์›น๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๋‹ค์‹œ ๋Œ๋ ค์ฃผ๊ฒŒ ๋˜๋ฉด์„œ ์‚ฌ์šฉ์ž๋Š” ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ž…๋ ฅ๊ฐ’

<?php
echo $_GET['id'];
 ?>

์ด๋ ‡๊ฒŒ $_GET์„ ํ†ตํ•ด id๊ฐ’์„ ์ถœ๋ ฅ์‹œํ‚ฌ ๊ฒฝ์šฐ,

url์„ ํ†ตํ•ด id๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

http://localhost/php/1.php?id=1

์ด๋ ‡๊ฒŒ ํŒŒ์ผ ์ด๋ฆ„ ์˜†?๋ฅผ ํ†ตํ•ด์„œ id=1์ด๋ผ๊ณ  ์ง€์ •์„ ํ•˜๋ฉด ํ™”๋ฉด์— 1์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ id๊ฐ’์œผ๋กœ 1์„ ์ฃผ๊ฒŒ ๋˜๋ฉด 1.php๋ผ๋Š” ํŒŒ์ผ ์•ˆ์— id๊ฐ’์ด 1๋กœ ์ง€์ •ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

๋˜ํ•œ ์ž…๋ ฅ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•˜๋ฉด ๋œ๋‹ค.

<?php
echo $_GET['name'].",".$_GET['id'];
 ?>

์ด๋ ‡๊ฒŒ ์ถ”๊ฐ€๋ฅผ ํ–ˆ์„ ์‹œ, url์—์„œ๋Š” &ํ‘œ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

http://localhost/php/1.php?name=PIDS&id=1

์ด๋Ÿฌ๋ฉด ํ™”๋ฉด์— PIDS,1์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์ž…๋ ฅ๊ฐ’์„ ๋” ์ถ”๊ฐ€ํ•œ๋‹ค๋ฉด, ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์ฃผ์†Œ์™€ ๊ฐ’์„ ๊ตฌ๋ถ„ํ•  ๋•Œ๋Š” ?๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋˜ํ•œ, ๊ฐ’๊ณผ ๊ฐ’์„ ๊ตฌ๋ถ„ํ• ๋•Œ๋Š” &๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์ด๊ฒƒ์ด PHP์—์„œ ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

txt ํŒŒ์ผ ํ™•์ธ

php์™€ ๊ฐ™์€ ํŒŒ์ผ ์•ˆ์— 1.txt๋ผ๋Š” ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.

1.txt์˜ ๋‚ด์šฉ์€ codingeverybody์ด๊ณ ,

ํ•ด๋‹น ๋‚ด์šฉ์„ php์—์„œ ์ถœ๋ ฅ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <?php
      echo file_get_contents("1.txt");
     ?>
  </body>
</html>

์ด๋ ‡๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ํ™”๋ฉด์„ ํ™•์ธํ•˜๋ฉด codingeverybody๊ฐ€ ์ถœ๋ ฅ์ด ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ file_get_contents๋Š” php์— ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

๊ทธ๊ฒƒ์˜ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ์ฝ์œผ๋ ค๊ณ  ํ•˜๋Š” ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ฃผ๋ฉด, file_get_contentsํ•จ์ˆ˜์— ์˜ํ•ด ํ•ด๋‹น txt ํŒŒ์ผ์ด return ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ•จ์ˆ˜ ์•ž์— echo๋ฅผ ๋ถ™์ด๊ฒŒ ๋˜๋ฉด, return ๋œ txt ํŒŒ์ผ์ด ์ถœ๋ ฅ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ 2.txt ํŒŒ์ผ์„ ํ•˜๋‚˜ ๋” ์ƒ์„ฑํ•ด๋ณด์ž.

2.txt ํŒŒ์ผ์˜ ๋‚ด์šฉ์€ Hello World์ด๋‹ค.

์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ txt ํŒŒ์ผ์ด ์žˆ์„ ๊ฒฝ์šฐ, ์ž…๋ ฅ๊ฐ’์— ๋”ฐ๋ผ์„œ txt ํŒŒ์ผ์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

    <?php
      echo file_get_contents( $_GET['id'].".txt");
     ?>

์ด๋ ‡๊ฒŒ ์ˆ˜์ •์„ ํ•œ๋‹ค๋ฉด, url์˜ id๊ฐ’์œผ๋กœ 1์„ ์ฃผ๊ฒŒ ๋˜๋ฉด codingeverybody๊ฐ€ ์ถœ๋ ฅ์ด ๋˜๊ณ ,

2๋ฅผ ์ฃผ๊ฒŒ๋˜๋ฉด Hello World๊ฐ€ ์ถœ๋ ฅ์ด ๋œ๋‹ค.

 

์‹ค์Šต

๊ทธ๋ ‡๋‹ค๋ฉด, ์ด์ œ ๋งŒ๋“ค๋˜ JavaScript๊ต์œก ํŽ˜์ด์ง€์˜ index.html ํŒŒ์ผ์„ phpํŒŒ์ผ๋กœ ๋งŒ๋“ค๊ณ , indexํŒŒ์ผ์•ˆ์— ํฌํ•จ๋˜์–ด์žˆ๋˜,

html๊ณผ ์ •๋ณด๋ฅผ ๋œฏ์–ด๋‚ด์„œ, html์€ php๋กœ ๊ฐ€๊ณ , ์‹ค์ œ ์ •๋ณด๋Š” txt๋กœ ๊ฐ€๊ฒŒ ํ•ด๋ณด์ž.

๊ทธ๋Ÿฌ๊ธฐ์— ์•ž์„œ, index.htmlํŒŒ์ผ์„ Duplicate ํ•˜์—ฌ index.php ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<link rel="stylesheet" type="text/css" href="http://localhost/style.css">
</head>
<body id="target">
	<header>
		<h1><a href="http://localhost/">JavaScript</a></h1>
	</header>
	<nav>
		<ol>
			<?php
				echo file_get_contents("list.txt");
			 ?>
		</ol>
	</nav>
	<div id="control">
	<input type="button" value="Light Mode" id = "Light_btn"/>
	<input type="button" value="Dark Mode" id = "Dark_btn"/>
	</div>
	<article>
		<h3>์ด ํŽ˜์ด์ง€๋Š” JavaScript๋ฅผ ๊ต์œกํ•˜๋Š” ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.</h3>
	</article>
	<script src="http://localhost/script.js"></script>
</html>

์œ„ ์ฝ”๋“œ์—์„œ ol ์‚ฌ์ด์— ์žˆ๋˜ list๋Š” ์นดํ…Œ๊ณ ๋ฆฌ์˜€๋‹ค.

๊ทธ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‚ด์šฉ๋“ค์€ list.txt ํŒŒ์ผ๋กœ ์˜ฎ๊ธฐ๊ณ , ๊ทธ ์ž๋ฆฌ์—๋Š” php๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ list.txt ํŒŒ์ผ์„ return ํ•˜์˜€๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ™ˆํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจ ํ•˜๋ฉด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒŒ ์—†๋‹ค.

์ด๋ ‡๊ฒŒ ์ •๋ณด์™€ html์„ ๋ถ„๋ฆฌํ•œ๋‹ค๋ฉด, ๋งŒ์•ฝ ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ํ•˜๋‚˜๊ฐ€ ์ถ”๊ฐ€๊ฐ€ ๋˜์—ˆ์„ ๊ฒฝ์šฐ์—,

๋ชจ๋“  html์—์„œ ์ถ”๊ฐ€ํ•˜์—ฌํ•˜๋Š” ์ƒํ™ฉ์„, list.txt์˜ ์ˆ˜์ •์œผ๋กœ ๋ชจ๋“  html์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

<article> ํƒœ๊ทธ ์•ˆ์˜ ๋‚ด์šฉ ๋˜ํ•œ ์ •๋ณด์ด๋‹ค. ํ•ด๋‹น ๋‚ด์šฉ๋“ค๋„ ๊ฐ๊ฐ 1.txt~ 3.txt๊นŒ์ง€ ๋งŒ๋“ค์–ด์„œ ์ •๋ณด๋ฅผ ์˜ฎ๊ฒจ ๋‹ด์•„์•ผ ํ•œ๋‹ค.

echo file_get_contents($_GET['id'].".txt");

์ด๋ ‡๊ฒŒ $_GET ['id']๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, id๊ฐ’์— ๋”ฐ๋ผ ๋‚ด์šฉ์ด ๋‹ฌ๋ผ์ง„๋‹ค.

ํ•˜์ง€๋งŒ, ์ด๋ ‡๊ฒŒ๋งŒ ์ž‘์„ฑํ•  ์‹œ index.php์—์„œ๋Š” id๊ฐ’์ด ์žˆ์ง€๊ฐ€ ์•Š์•„์„œ,

๊ณ„์† php๊ฐ€ id๊ฐ’์„ ์ฐพ์œผ๋ ค๊ณ  ํ•  ๊ฒƒ์ด๋‹ค.

๊ทธ๋ ‡๊ธฐ์—, if๋ฌธ์„ ์‚ฌ์šฉํ•ด id๊ฐ’์ด ์กด์žฌํ•  ๋•Œ๋งŒ ์‹คํ–‰ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

if(empty($_GET['id']) == false){
	echo file_get_contents($_GET['id'].".txt");
}

์—ฌ๊ธฐ์„œ empty๋Š” ์ž…๋ ฅ๊ฐ’์ด ์—†์„ ๋•Œ true๊ฐ€ ๋˜๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜์ด๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— empty($_GET ['id'])๋Š” id๊ฐ’์ด ์—†์„ ๋•Œ ture๊ฐ€ ๋˜๋ฏ€๋กœ,

id๊ฐ’์ด ์žˆ์„ ๋•Œ๋งŒ true๊ฐ€ ๋˜์–ด์•ผ ํ•˜๋‹ˆ, == false๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ์›๋ž˜๋Š” ๊ฐ๊ฐ์˜ html์ด ์žˆ์–ด์„œ ๋งํฌ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋‹ค๋ฅธ html๋กœ ์ด๋™์„ ํ•˜์˜€๋‹ค๋ฉด,

์ด์ œ๋Š” ํ•˜๋‚˜์˜ php ํŒŒ์ผ(index.php)์—์„œ ๊ฐ๊ฐ์˜ ์ •๋ณด๋งŒ txt ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด

txt ํŒŒ์ผ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋ชจ๋“  php ํŒŒ์ผ์ด ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

๋งŒ์•ฝ <header> ๋ถ€๋ถ„์— ๋กœ๊ณ ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค๋ฉด,

<header> ํƒœ๊ทธ ์•„๋ž˜์— <img> ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ด๋ฏธ์ง€ ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ชจ๋“  ํŽ˜์ด์ง€์—์„œ๋„ ์ด๋ฏธ์ง€๊ฐ€ ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ ์ด๋ฏธ์ง€ ๋˜ํ•œ style.css๋ฅผ ์‚ฌ์šฉํ•ด ์›ํ•˜๋Š” ์œ„์น˜, ์‚ฌ์ด์ฆˆ๋ฅผ ์ˆ˜์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

header img {
  float:right;
  height:105px;
}

์ด๋ ‡๊ฒŒ ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ, ๋†’์ด๋ฅผ 105px๋กœ ์„ค์ •ํ•ด์ฃผ์—ˆ๋‹ค.

์ด๋ ‡๊ฒŒ PHP๋Š” ๋‹จ ํ•œ ๋ฒˆ์˜ ์ˆ˜์ •์œผ๋กœ ๋ชจ๋“  ํŽ˜์ด์ง€์˜ HTML์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

CSS์™€ JS ๋˜ํ•œ ๋…๋ฆฝ์ ์œผ๋กœ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•ด์„œ ํ•œ ๋ฒˆ์˜ ์ˆ˜์ • ๋ฐ ์ถ”๊ฐ€๋กœ ๋ชจ๋“  ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.


์ถœ์ฒ˜: [์ƒํ™œ์ฝ”๋”ฉ]์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ