PHP
jeongahstory.co.kr
jeongahstory.co.kr
PHP는 서버측에서 실행되는 스크립트 언어입니다.
PHP 서버사이드 스크립트 언어입니다. 자바스크립트는 웹 브라우저에서 내장된 인터프린터에 의해 해석되는 언어입니다. 즉 웹 브라우저에서 이용할 수 있는 프로그램입니다. 반면에 PHP는 서버에 설치된 PHP에 의해 해석됩니다. 이러한 처리를 가능하게 해주는 프로그램은 PHP , JSP, ASP 등 있으며, 워드프레스, 줌라, XE, CAFE24, 티스토리 등의 프랫폼 역시 PHP을 기반으로 하고 잇습니다.
PHP는 서버측에서 실행되는 스크립트 언어입니다.
<?php
//실행코드
?>
//한줄
/* 여러줄 */
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
hello php</body>
</html>
변수는 여러가지 값으로 변할 수 있는 수를 의미합니다.
$변수명 = 값;
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>php</title>
<script>
//변수명에 javascript를 저장하고 출력하세요!
var java = "javascript";
document.write(java);
document.write("<br>");
document.write("나는 " + java + "를 배우고 있습니다.");
document.write("<br><br>");
</script>
</head>
<body>
<?php
$php = "php";
echo $php;
echo "<br>";
echo "나는 " . $php . "를 배우고 있습니다.";
echo "<br>";
echo "나는 {$php}를 배우고 있습니다.";
echo "<br>";
echo "나는 \"php\"를 배우고 있습니다.";
echo "<br>";
echo "나는 \$15를 사용했습니다."
//만약 $를 변수로 인식할시 \(역슬래시)를 사용하면 문자로 인식합니다.
?>
</body>
</html>
배열은 여러개의 값을 변수에 저장할 수 있습니다.
$변수명 = array();
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
var korea = new Array();
korea[0] = "seoul";
korea[1] = "busan";
document.write(korea[0]);
document.write("<br>");
document.write(korea[1]);
document.write("<br><br>");
</script>
</head>
<body>
<?php
$korea = array();
$korea[0] = "seoul";
$korea[1] = "busan";
echo $korea[0];
echo "<br>";
echo $korea[1];
echo "<br>";
$korea['city'] = 'gangnam';
echo $korea['city'];
?>
</body>
</html>
array_push(변수명, 배열에 들어갈 값, 배열에 들어갈 값,....)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$fruit = array();
array_push($fruit, 'apple','banana','grape','coconut', 'melon');
echo $fruit[0]."<br>";
echo $fruit[1]."<br>";
echo $fruit[2]."<br>";
echo $fruit[3]."<br>";
echo $fruit[4]."<br>";
?>
</body>
</html>
$변수명[인텍스1][인텍스2] = 값;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$earth = array();
$earth['nation'][0] = 'korea';
$earth['nation'][1] = 'america';
$earth['nation'][2] = 'canada';
$earth['nation'][3] = 'japen';
$earth['nation'][4] = 'china';
$earth['nation'][5] = 'france';
//배열의 내용을 보여줍니다.
var_dump($earth);
echo "<br><br>";
echo $earth['nation'][4];
?>
</body>
</html>
변수는 여러가지 값으로 변할 수 있는 수를 의미합니다.
연산자 | 예시 | 설명 |
---|---|---|
+ |
$x + $y | 더하기 |
- |
$x - $y | 뻴셈 |
* |
$x * $y | 곱하기 |
/ |
$x / $y | 나누기 |
% |
$x % $y | 나머지 |
연산자 | 설명 | 표현 |
---|---|---|
++ |
++ $x / $x ++ | 선 증가 연산자 / 후 증가 연산자 |
-- |
-- $x / $x -- | 선 감소 연산자 / 후 감소 연산자 |
연산자 | 예시 | 설명 |
---|---|---|
== |
$x == $y | 좌변과 우변이 값이 같을 경우 true |
=== |
$x === $y | 좌변과 우변이 값이 같거나 데이터형도 같을 경우 true |
!= |
$x != $y | 좌변과 우변의 값이 같지 않을 경우 true |
!== |
$x !== $y | 좌변과 우변의 값이 같지 않을 경우, 또는 데이터형이 다른 경우 true |
> |
$x > $y | 좌변이 우변보다 클 경우 ture |
< |
$x < $y | 좌변이 우변보다 작을 경우 true |
>= |
$x >= $y | 좌변이 우변보다 크거나 같을 경우 ture |
<= |
$x <= $y | 좌변이 우변보다 작거나 같을 경우 true |
연산자 | 예시 | 설명 |
---|---|---|
&& |
$X && $Y | (AND)둘다 true인 경우 true |
|| |
$X || $Y | (OR)둘 중의 하나 이상이 true이면 true |
! |
!$X | (NOT)식이 false인 경우 true |
변수에 사용되는 값이 숫자인지, 문자열인지, 논리값인지를 구분하는 것을 데이터 형이라고 합니다.
데이터형 | 값 |
---|---|
int or interger | 숫자 - 정수 |
double | 숫자 - 소수 |
string | 문자열 |
boolen | 논리값(true, false) |
Null | 없는 값 |
array | 배열 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>데이터 형</title>
</head>
<body>
<?php
$num = 12;
echo "변수 \$num 데이터형(값: {$num})은 " . gettype($num). "입니다.<br>";
$greeting = "안녕";
echo "변수 \$greeting 데이터형(값: {$greeting})은 " . gettype($greeting). "입니다.<br>";
$numStr = "121212";
echo "변수 \$numStr 데이터형(값: {$numStr})은 " . gettype($numStr). "입니다.<br>";
$fruit = array();
echo "변수 \$fruit 데이터형(값: {$fruit})은 " . gettype($fruit). "입니다.<br>";
$nu = null;
echo "변수 \$nu 데이터형(값: {$nu})은 " . gettype($nu). "입니다.<br>";
$bloolean = true;
echo "변수 \$bloolean 데이터형(값: {$bloolean})은 " . gettype($bloolean). "입니다.<br>";
?>
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>데이터형 변경하기</title>
</head>
<body>
<?php
$str = "문자열";
echo "데이터형 변경 전의 데이터형 ".gettype($str)." 값은 : {$str} <br>";
$str = (int) $str;
echo "데이터형 변경 후의 데이터형 ".gettype($str)." 값은 : {$str} <br>";
echo "<br><br>";
$str2 = "555 문자열";
echo "데이터형 변경 전의 데이터형 ".gettype($str2)." 값은 : {$str2} <br>";
$str2 = (int) $str2;
echo "데이터형 변경 후의 데이터형 ".gettype($str2)." 값은 : {$str2} <br>";
echo "<br><br>";
$str3 = "12.23454";
echo "데이터형 변경 전의 데이터형 ".gettype($str3)." 값은 : {$str3} <br>";
$str3 = (int) $str3;
echo "데이터형 변경 전의 데이터형 ".gettype($str3)." 값은 : {$str3} <br>";
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>php 조건문</title>
</head>
<body>
<?php
//변수의 값이 짝수인지 홀수인지 판단하는 조건문을 완설하세요.
$num = 100;
if( $num % 2 == 0){
echo "짝수입니다.<br><br>";
} else {
echo "홀수입니다.<br><br>";
}
$date = "문자";
if( gettype($date) == 'string'){
echo "데이터형은 문자열 입니다.";
} else if ( gettype($date) == 'integer'){
echo "데이터형은 정수형 입니다.";
} else {
echo "데이터형은 문쟈열도 정수형도 아닙니다.";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<select name="birthMonth" id="birthMonth">
<?php
// 4월에 기본 선택되도록 변수 선언
$selectMonth = 4;
//$i = 1~12
for($i=1; $i<=12; $i++){
$selected = '';
if( $i == $selectMonth){
$selected = "selected";
}
?>
<option value="<?=$i?>" <?=$selected?><?=$i?></option>
<?php } ?>
</select>
<label for="birthMonth">월</label>
</body>
</html>
foreach(대상변수 as 변수의 대체 이름){ //코드 입력 }
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>조건문 (for each문)</title>
</head>
<body>
<?php
$member = array();
//member 배열에 0 인덱스를 생성하고 0 인덱스도 배열로 선언
$member[0] = array();
$member[0]['name'] = '하지헌';
$member[0]['useID'] = 'qwlgjs';
$member[0]['email'] = 'qwlgjs@naver.com';
$member[1] = array();
$member[1]['name'] = '이정아';
$member[1]['useID'] = 'jeongahstory';
$member[1]['email'] = 'jeongahstory@naver.com';
$member[2] = array();
$member[2]['name'] = '강인영';
$member[2]['useID'] = 'industry';
$member[2]['email'] = 'industry@naver.com';
// for($i=0; $i<count($member); $i++){
// echo $member[$i]['name']."<br>";
// }
foreach($member as $data){
echo $data['name']."<br>";
}
?>
</body>
</html>
function 함수명(){
//실행 함수
}
함수명(); //함수 호출
function 함수명(파라미터){
//실행 함수
}
함수명(아규먼트); //함수 호출
시간 함수는 리눅스 시간을 출력해주는 함수입니다. 여기서 리눅스 시간이란? 1970년 1월 1일 00시 00분 00초부터 세기 시작하는 시간입니다. 시간 함수는 1970년 1월 1일 00시 00분 00초부터 몇 초가 지났는지를 반환합니다. 이 리눅스 시간을 "타임스탬프"라고 합니다.
종류 | 설명 |
---|---|
checkdate |
주어진 날짜가 실제 존재하는 날짜인지 판단합니다. |
date |
날짜와 시간을 지정한 형식에 맞추어 반환합니다. |
getdate |
날짜와 시간을 배열로 반환합니다. |
microtime |
유닉스 형식의 시간으로 반환합니다. |
mktime |
주어진 시간을 유닉스 형식의 시간으로 반환합니다. |
time |
현재의 시간을 유닉스 형식의 시간으로 반환합니다. |
인자 | 자료형 | 설명 |
---|---|---|
format |
string | 시간과 날짜의 반환 형식을 지정합니다. |
timestamp |
int | 특정 시간을 지정합니다. |
분류 | 문자 | 설명 | 예 |
---|---|---|---|
일 | d |
일자를 두 자리로 반환합니다. | 01~31 |
D |
요일을 3글자로 반환합니다. | Mon~Sun | |
j |
일자를 0이 붙지 않는 형식으로 반환합니다. | 1~31 | |
I |
요일을 영문 단어로 반환합니다. | Sunday~Saturday | |
S |
영문 서수 접미사를 반환합니다. | st, nd, rd, th | |
w |
요일을 순자로 반환합니다. | 0(일)~6(토) | |
Z |
해당 연도의 몇 번째 날인지 반환합니다. | 0~364 | |
주 | W |
해당 연도의 몇 번째 주인지 반환합니다. | 12(연도의 12번째 주) |
월 | F |
월을 영문 단어로 반환합니다. | January~December |
m |
월을 두자리 숫자로 반환합니다. | 01~12 | |
M |
월을 영문 3글자로 반환합니다. | Jan~Dec | |
n |
월을 0이 붙지 않는 숫자로 반환합니다. | 1~12 | |
t |
해당 월의 날짜 수를 반환합니다. | 28~31 | |
년도 | L |
윤년인지 여부를 반환합니다. | 윤년이면1, 아니면0 |
Y |
연도를 4자리 수로 반환합니다. | 2018 | |
y |
연도를 2자리 수로 반환합니다. | 18 | |
년도 | a |
오전과 오후를 영문 소문자로 반환합니다. | am, pm |
A |
오전과 오후를 영문 대문자로 반환합니다. | AM, PM | |
g |
시간을 12시간 형식으로 반환하며, 0이 붙지 않습니다. | 1~12 | |
G |
시간을 24시간 형식으로 반환하며, 0이 붙지 않습니다. | 0~24 | |
h |
시간을 12시간 두 자리 형식으로 반환합니다. | 01~12 | |
H |
시간을 24시간 두 자리 형식으로 반환합니다. | 00~23 | |
i |
분을 두자리 형식으로 반환합니다. | 00~59 | |
s |
초를 두자리 형식으로 반환합니다. | 00~59 | |
날짜/시간 | c |
ISO 8601 형식의 날짜로 반환합니다. | 2017-01-01T12:00:00+09:00 |
r |
RFC 2822 형식의 날짜로 반환합니다. | Sun, 09, Jan 2019 12:00:00+09:00 | |
U |
유닉스 형식 시간을 반환합니다. | 1136041200 |
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
ini_set('date.timezone','Asia/Seoul');
echo '1970년 1월 1일 0시 0분 0초로부터 '.time().' 초가 지났습니다.';
echo '<br>';
echo "현재 시간은 " .date("Y년 m월 d일 H시 i분 s초", time());
?>
</body>
</html>
mktime(시, 분, 초, 월, 일, 년);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>mktime()</title>
</head>
<body>
<?php
ini_set('date.timezone','Asia/Seoul');
// echo "2019년 4월 4일 10시 25분 10초의 타임스탬프는? <br>";
// echo mktime(20, 25, 10, 4, 4, 2019);
//시작 시간 설정
$startTime = mktime(10, 25, 10, 4, 4, 2019);
//종료 시간 설정
$endTime = mktime(10, 35, 10, 4, 4, 2019);
if( $startTime <= time() && $endTime > time() ){
echo "이벤트를 참여하세요";
} else {
echo "이벤트가 시작 전이거나 종료되었습니다.";
}
?>
</body>
</html>
함수 | 기능 |
---|---|
basename |
경로에서 파일 이름만을 반환합니다. |
chmod |
파일의 모드를 변겨합니다. |
copy |
파일을 복사합니다. |
dirnmae |
경로에서 디렉토리 이름만 반환합니다. |
dirnmae |
경로에서 디렉토리 이름만 반환합니다. |
fclose |
열려 있는 파일 포인터를 종료합니다. |
feof |
파일 포인터가 파일의 끝에 있는지 검사합니다. |
fgetc |
파일로부터 하나의 문자를 가져옵니다. |
fgets |
파일로부터 한줄의 문자를 가져옵니다. |
file_exists |
파일이 존재하는지 여부를 확인합니다. |
file |
파일 전체를 배열로 읽어들입니다. |
filesize |
파일의 크기를 반환합니다. |
filetype |
파일의 형식을 반환합니다. |
fopen |
파일의 URL을 엽니다. |
fpassthru |
파일 포인터로부터 파일의 끝까지의 모든 데이터를 출력합니다. |
fputs, fwrite |
파일 포인터에 지정한 크기의 문자열을 씁니다. |
함수 | 기능 |
---|---|
crypt |
단방향으로 문자열을 암호합니다. |
echo |
문자열을 출력합니다. |
explode |
문자열을 특정 문자열을 기준으로 분리합니다. |
htmlentities |
해당하는 모든 문자를 HTML 엔티티로 변환합니다. |
implode/join |
배열의 원소를 문자열로 연결합니다. |
ltrim |
문자열 왼쪽의 공백을 제거합니다. |
md5 |
문자열의 MD5 해시값을 반환합니다. |
nl2br |
문자열의 모든 줄 바꿈 앞에 <br/>태그를 삽입합니다. |
print |
문자열을 출력합니다. |
printf |
형식화된 문자열을 출력합니다. |
rtrim/chop |
문자열 오른쪽의 공백을 제거합니다. |
sprintf |
형식화된 문자열로 반환합니다. |
sscanf |
문자열을 형식에 따라 처리합니다. |
str_replace |
문자열을 찾아서 치환합니다. |
strip_tags |
문자열에서 HTML과 PHP 태그를 제거합니다. |
strlen |
문자열의 길이를 반환합니다. |
strpos |
문자열이 처음 나타나는 위치를 반환합니다. |
strstr/strchr |
문자열이 처음으로 나타나는 위치를 반환합니다. |
substr |
문자열의 일부를 반환합니다. |
trim |
문자열의 처음과 끝에 있는 공백을 제거합니다. |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$str = " 안녕하세요. ";
//trim 사용하지 않고 출력
echo "trim 사용하지 않고 출력<br>";
echo "|".$str."|";
echo "<br><br>";
//trim 사용
echo "trim 사용 <br>";
echo "|".trim($str)."|";
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>strtolower() strtoupper()</title>
</head>
<body>
<?php
$str = "Hello World";
echo "원문<br>";
echo $str;
echo "<br><br>";
echo "대문자로 출력<br>";
echo strtoupper($str);
echo "<br><br>";
echo "소문자로 출력<br>";
echo strtolower($str);
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>strlen() 문자열 길이</title>
</head>
<body>
<?php
$str = "php수업입니다. php를 배우고 있습니다.";
echo $str."의 문자열 길이는 ".strlen($str)."입니다.";
?>
</body>
</html>
set_replace('치환할 문자', '대처할 문자', '대상 문자열');
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>set_replace()</title>
</head>
<body>
<?php
$str = "hello world";
$changeStr = str_replace("world", "php", $str);
echo $changeStr;
?>
</body>
</html>
substr('대상 문자열', '자르길 시작할 위치', '자를 문자열 수');
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>substr()</title>
</head>
<body>
<?php
$fileName = "img.jpg";
$execute = substr($fileName, -4, 4);
if($execute == '.jpg' || $execute == '.png' || $execute == '.gif') {
echo "업로드한 파일은 이미지 파일입니다.";
} else {
echo "업로한 파일은 이미지 파일이 아닙니다.";
}
?>
</body>
</html>
explode('나눔 문자', '대상 문자열');
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>explode()</title>
</head>
<body>
<?php
$email = "jeongah@naver.com";
$emailArray = explode("@",$email);
echo "<pre>";
var_dump($emailArray);
echo "이메일의 호스트 출력<br>";
echo $emailArray[1];
?>
</body>
</html>
함수 | 기능 |
---|---|
mail |
메일을 보냅니다. |
abs |
절대값을 나타냅니다. |
ceil |
소수점 이하를 올림합니다. |
floor |
소수점 이하를 내림합니다. |
pow |
수를 거듭제곱합니다. |
rand |
정수형 난수를 생성합니다. |
mt_rand |
향상된 정수형 난수를 생성합니다. |
round |
실수를 반올림합니다. |
base64_encode |
MIME 규약에 따라 데이터를 base64로 인코딩합니다. |
base64_decode |
MIME 규약에 따라 인코딩된 데이터를 디코딩합니다. |
urlencode |
문자열을 URL 인코딩합니다. |
urldecode |
문자열을 URL 디코딩합니다. |
empty |
변수가 비어 있는지 확인합니다. |
isset |
변수가 설정되 있는지 확인합니다. |
unset |
주어진 변수를 제거합니다. |
is_array |
주어진 변수가 배열인지 확인합니다. |
post는 HTTP 프로토콜 통신 시에 전될되는 방식이고, get은 데이터를 URL에 붙여 전달하는 방식입니다.
https://jeongahstory.co.kr?type=first&mobile=ok
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>get</title>
</head>
<body>
<?php
//http://jeongah2651.dothome.co.kr/php/php19.php?type=first&mobile=ok
echo "GET['type']는 " .$_GET['type']."<br>";
echo "GET['mobile']는 " .$_GET['mobile']."<br>";
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>post</title>
</head>
<body>
<h1>로그인</h1>
<form action="php20_post.php" method="post">
<label for="email">Email</label>
<input type="email" name="email" id="email" placeholder="이메일 주소 입력">
<label for="password">password</label>
<input type="password" name="password" id="password" placeholder="비밀번호 입력">
<input type="submit" value="전달">
</form>
</body>
</html>
class 클래스 명 {
기능 구현
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>class</title>
</head>
<body>
<?php
class people {
//생성자
function __construct(){
echo "사람들은 돈을 좋아합니다.<br>";
}
//말하기
function speak($word){
echo $word." 라고 말했다.<br>";
}
//달리기
function run($km){
echo $km."을 달린다.<br>";
}
//걷기
function walk($km){
echo $km."을 걷다.<br>";
}
//소멸자
function __destruct(){
echo "힘들다.<br>";
}
}
//인스턴스 생성
$people = new people;
//메소드 사용
$people ->speak('나는 인간이다');
$people ->walk('산');
$people ->run('바다');
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$host = "localhost";
$user = "jeongah2651";
$pw = "foever0!";
$dbNamme = "jeongah2651";
$dbConnect = new mysqli($host, $user, $pw, $dbNamme );
$dbConnect->set_charset("utf8");
if(mysqli_connect_errno()){
echo "데이터베이스 접속 실패";
echo mysqli_connect_errno();
} else {
// echo "데이터베이스 접속 성공";
}
?>
</body>
</html>
<?php
//mysql 접속 소스를 include
include_once "../connectDB.php";
//데이터 입력
// 아이디 : webstoryboy
// 이름 : 웹스
// 패스워드 : forever
// 휴대전화 번호 : 010-7112-2049
// 이메일 : webstoryboy@naver.com
// 생일 : 1972-04-03
// 성별 : 남성
$useID = "webstoryboy";
$uname = "웹스";
$upassword = "forever";
$phone = "010-7112-2049";
$email = "webstoryboy@naver.com";
$birthDay = "1972-04-03";
$gender = "m";
//쿼리문 작성
$sql = "INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay, gender, regTime) VALUES";
$sql .= "('{$useID}','{$uname}','{$upassword}','{$phone}','{$email}','{$birthDay}','{$gender}',now())";
//쿼리문 전송 및 전송값을 result 변수에 대입
$result = $dbConnect->query($sql);
if($result){
echo "yes";
} else {
echo "no";
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>회원가입</h1>
<form action="php23_insert.php" method="post" name="signUp">
<label for="useName">이름</label>
<input type="input" id="useName" name="useName" placeholder="이름"><br>
<label for="useID">ID</label>
<input type="input" id="useID" name="useID" placeholder="ID"><br>
<label for="usePW">비밀번호</label>
<input type="input" id="usePW" name="usePW" placeholder="비밀번호"><br>
<label for="useGender">성별</label>
<select id="useGender" name="useGender">
<option value="m">남성</option>
<option value="w">여성</option>
</select><br>
<label for="useEmail">이메일</label>
<input type="email" id="useEmail" name="useEmail" placeholder="이메일 입력">
<br>
<input type="submit" value="가입하기">
</form>
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//mysql 접속 소스를 include
include_once "../connectDB.php";
$myMemberID = 1;
$sql = "SELECT * FROM myMember WHERE myMemberID = {$myMemberID}";
//쿼리문 전송 및 전송값을 result 변수에 대입
$result = $dbConnect->query($sql);
//가져온 결과를 어떻게 분류할 것인지를 설정
$memberInfor = $result->fetch_array(MYSQLI_ASSOC);
echo "<pre>";
var_dump($memberInfor);
echo "회원번호가 {$myMemberID}번인 회원의 이름은 " .$memberInfor['uname'];
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//mysql 접속 소스를 include
include_once "../connectDB.php";
$sql = "SELECT uname, useID FROM myMember";
//쿼리문 전송 및 전송값을 result 변수에 대입
$result = $dbConnect->query($sql);
//레코드 수를 가져오는 명령어
$numResult = $result->num_rows;
if($numResult != 0){
for($i=0; $i<$numResult; $i++){
$memberInfo = $result->fetch_array(MYSQLI_ASSOC);
echo "회원이름 : ".$memberInfo['uname']." 회원 ID : ".$memberInfo['useID']."<br>";
}
} else {
echo "회원이 없습니다.";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>데이터 이름순서대로 불러오기</title>
</head>
<body>
<?php
//mysql 접속 소스를 include
include_once "../connectDB.php";
$sql = "SELECT uname, useID FROM myMember ORDER BY uname ASC;";
$result = $dbConnect->query($sql);
$numResult = $result->num_rows;
if($numResult != 0){
for($i=0; $i<$numResult; $i++){
$memberInfo = $result->fetch_array(MYSQLI_ASSOC);
echo "회원이름 : ".$memberInfo['uname']." 회원 ID : ".$memberInfo['useID']."<br>";
}
} else {
echo "회원이 없습니다.";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>회원 가입 시키기</title>
</head>
<body>
<?php
//mysql 접속 소스를 include
include_once "../connectDB.php";
//성 배열
$familyName = array();
$familyName = ['김','이','박','전','황','강','손','하','최','조','노','주','윤','임'];
//이름 배열
$lastName = array();
$lastName = ['상연','상현','상순','순삼','상돌','상미','상수','상금','상심','상소','상상','상민','상장','상자','상술','상속'];
//성별 배열
$usegender = array();
$usegender = ['m','w'];
//테이블에 회원 정보 입력 성공 카운트
$successCount = 0;
$failCount = 0;
//insert문을 사용하여 500회 작동 시키기
for($i=1; $i<=500; $i++){
//랜덤으로 받아오기
$numRandomFN = rand(0,count($familyName) - 1);
$numRandomLN = rand(0,count($lastName) - 1);
$gender = $usegender[rand(0,1)];
$upassword = sha1("web".rand(1,1000));
$uname = $familyName[$numRandomFN].$lastName[$numRandomLN];
$useID = "jastory".rand(1,9999999);
$email = "je".rand(1,9999)."@naver.com";
//쿼리문 작성
$sql = "INSERT INTO myMember(useID, uname, upassword, email, gender, regTime) VALUES";
$sql .= "('{$useID}','{$uname}','{$upassword}','{$email}','{$gender}',now())";
//쿼리문 전송 및 전송값을 result 변수에 대입
$result = $dbConnect->query($sql);
if($result){
$successCount ++;
} else {
$failCount++;
}
}
echo "입력 성공 수 : {$successCount}";
echo "<br>";
echo "입력 실패 수 : {$failCount}";
?>
</body>
<?php
include_once "../connectDB.php";
//페이지값을 수함
if(isset($_GET['page'])){
$page = (int) $_GET['page'];
} else {
$page = 1;
}
//페이지에 출력할 레코드 수
$numView = 50;
//변수 page 값에 따른 LIMIT의 첫 번째 값 계산
$firstLimitValue = ($numView * $page) - $numView;
$sql = "SELECT * FROM myMember LIMIT {$firstLimitValue}, {$numView}";
$result = $dbConnect->query($sql);
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>불러오기</title>
<style>
table {width: 100%; border-collapse: collapse; border-spacing: 0;}
table th {border: 1px solid #999; background: #f1f1f1; padding: 10px;}
table td {border: 1px solid #999; padding: 5px;}
</style>
</head>
<body>
<h1>고객리스트</h1>
<table>
<tr>
<th>번호</th>
<th>ID</th>
<th>이름</th>
<th>이메일</th>
<th>성별</th>
<th>가입일</th>
</tr>
<?php
for($i=0; $i < $result->num_rows; $i++){
$member = $result->fetch_array(MYSQLI_ASSOC);
?>
<tr>
<td><?=$member['myMemberID']?></td>
<td><?=$member['useID']?></td>
<td><?=$member['uname']?></td>
<td><?=$member['email']?></td>
<td><?=(($member['gender'] == 'w') ? '여성':'남성') ?></td>
<td><?=$member['regTime']?></td>
</tr>
<?php
}
?>
</table>
</body>
</html>
<?php
include_once "../connectDB.php";
$sql = "SELECT * FROM myMember ";
$res= $dbConnect->query($sql);
$numView = 50;
$totalRecord = $res->num_rows;
$numPage= ceil($totalRecord / $numView);
for($i=1; $i<$numPage; $i++){?>
<a href="http://jeongah2651.dothome.co.kr/php/php28.php?page=<?=$i?>">
<?=$i?>
</a>
<?php } ?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>데이터 수정하기(이름 변경)</title>
</head>
<body>
<form action="php30_update.php" method="post" name="update">
<label for="memberID">회원번호</label>
<input type="number" name="memberID" id="memberID">
<label for="changeName">변경할 이름</label>
<input type="text" name="changeName" id="changeName">
<input type="submit" value="변경하기">
</form>
</body>
</html>
<?php
include_once "../connectDB.php";
$sql = "DELETE FROM myMember WHERE myMemberID = 14";
$res = $dbConnect->query($sql);
if($res){
echo "14번 회원의 정보가 삭제되었습니다.";
} else {
echo "삭제 실패 ";
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
include_once "../connectDB.php";
$sql = "SELECT m.uname, m.gender, s.class, s.english, s.math, s.science, s.japanese, s.coding ";
$sql .= "FROM myMember m JOIN schoolRecord s ON(m.myMemberID = s.studentID) ";
$sql .= "WHERE m.myMemberID = 3";
$res = $dbConnect->query($sql);
if($res){
$data = $res->fetch_array(MYSQLI_ASSOC);
echo "회원번호 3번의 이름은 {$data['uname']} 이며 <br> ";
$gender = "여성";
if($date['gender'] == 'm'){
$gender = '남자';
}
echo "성별은 {$gender}이며 <br>";
echo "{$data['class']}반 소속이며 <br>";
echo "영어 점수는 {$data['english']} <br>";
echo "수학 점수는 {$data['math']} <br>";
echo "과학 점수는 {$data['science']} <br>";
echo "일본어 점수는 {$data['japanese']} <br>";
echo "코딩 점수는 {$data['coding']} <br>";
} else {
echo "정보를 불러오는데 실패했습니다.";
}
?>
</body>
</html>
데이터를 입력햇을 때 이 값이 한글로만 구성되어 있는지 영어로만 구성되어 있는지 또는 어떤 패턴으로 입력이 되었는지를 체크하는 방법을 정규표현식이라고 합니다.
preg_match(패턴, 검사할 텍스트, 반환할 패턴 일치 결과를 받을 변수)
$pattern = '/패턴 입력할 곳';
^
'$
'[]
'-
'을 사용합니다.[]
'사이에 들어갈 값으로는 한글, 영어소문자, 영어대문자를 넣어 확인할 수 있습니다.|
'입니다.
한글의 간격
가-힣 정규 표현식 [가-힣]
영어 소문자
a-z 정규 표현식 [a-z]
영어 대문자
A-Z 정규 표현식 [A-Z]
한글, 영어소문자, 영어 대문자 모두를 간격으로 지정하려면
가-힣a-zA-Z 정규 표현힉 [가-힣a-zA-Z]
처음부터 끝까지 한글로만 이루어진 값을 찾는다고 가정하면
^[가-힣]$
1회만 검사할 경우
^[가-힣]$ 또는 ^[가-힣]${1}$
1회이상 검사할 경우
^[가-힣]+$ 또는 ^[가-힣]${1,}$
3회에서 5회까지 검사할 경우
^[가-힣]${3,5}+$
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$pattern = '/^[가-힣]+$/';
$myName = '하지헌';
if(preg_match($pattern, $myName, $matches)){
echo "값 {$myName}은 정규식 표현에 적합합니다.";
echo "<br>";
var_dump($matches);
} else {
echo "이름에 특수문자, 영문, 숫자를 사용할 수 없습니다.";
}
?>
</body>
</html>
$pattern '/^(a-zA-Z0-9_)+$/';
$pattern = '/^[^_]/';
^
가 '[]'의 밖에서 사용되면 처음에 오는 글자를 의미합니다.^
가 '[]'의 안에서 사용되면 어떤 문자가 와서는 안된다는 것을 의미합니다.$pattern = '/^[^_][a-zA-Z0-9]+$/';
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$pattern = '/^[a-zA-Z0-9_]+$/';
$myID = "jeongah_9";
if(preg_match($pattern, $myID, $matches)){
echo "값 {$myID}은 정규식 표현에 적합한 값입니다.";
echo "<pre>";
var_dump($matches);
} else {
echo "사용할 수 없는 아이디입니다.";
}
?>
</body>
</html>
휴대폰 번호가 010-으로 시작하는 규칙을 체크하는 패턴
$pattern '/^(010|011|016|017|018|019)-/';
^
는 처음 오는 패턴을 의미합니다.(010|011|016|017|018|019)
는 010~019인 패턴을 의미합니다.-
은 휴대폰 번호가 010-에서 -을 의미합니다.휴대폰 번호의 가운데에 위치하는 숫자가 3자리 또는 4자리인 숫자를 체크하는 패턴
$pattern '/^(010|011|016|017|018|019)-[0-9]{3,4}-/';
[0-9]{3,4}-는
0에서부터 9까지의 숫자를 3회에서 4회 검사한다는 의미입니다.마지막 패턴
$pattern '/^(010|011|016|017|018|019)-[0-9]{3,4}-[0-9]{4}$/';
{0-9}{4}$
0에서부터 9까지의 숫자가 있는지 4회 검사한다는 의미입니다.<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$pattern = '/^(010|011|016|017|018|019)-[0-9]{3,4}-[0-9]{4}/';
$myPhone = "010-2651-5129";
if(preg_match($pattern, $myPhone, $matches)){
echo "휴대폰 번호로 입력한 값 {$myPhone}은 사용할 수 있습니다.";
echo "<pre>";
var_dump($matches);
} else {
echo "사용할 수 없는 번호입니다.";
}
?>
</body>
</html>
$pattern = '/^[a-zA-Z0-9_\-\.]+/';
\-
처럼 앞에 역슬래시를 사용하는 이유는 -
가ㅏ 정규표현식에서 간격을 조정하는 기능을 담고 있습니다. 이것을 기능으로 사용하는 것이 아니라 문자로 사용하기 위해서는 \
를 앞에 붙입니다. \
를 앞에 붙이면 문자로 사용하겠다는 것을 의미합니다.
\.
는 .
도 맡고 잇는 기능이 있기 때문에 앞에 역슬래시를 붙여 사용합니다. .
는 모든 문자를 의미합니다.
$pattern = '/^[a-zA-Z0-9_\-\.]+@/';
@를 기준으로 앞에는 아이디 정규식 뒤에는 호스트 정규식을 작성합니다.
$pattern = '/^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[\.a-zA-Z]+$/';
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$pattern = '/^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-\.]+$/';
$myEmail = "jeongah2651@gmail.com";
if(preg_match($pattern, $myEmail, $matches)){
echo "입력한 이메일 주소 {$myEmail}는 사용가능한 이메일 주소 입니다.";
echo "<pre>";
var_dump($matches);
} else {
echo "사용 불가한 이메일 주소입니다.";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>파일 업로드</h1>
<form action="php37_file.php" name="fileUpload" method="post" enctype="multipart/form-data">
<input type="file" name="myImage">
<input type="submit" value="파일 등록">
</form>
</body>
</html>
$dirCheck = is_dir("./images/");
해당 위치에 images 폴더가 있다면 true를 반환
해당 위치에 images 폴더가 없다면 false를 반환
$opendir = opendir("./images/");
해당 위치에서 images폴더를 여는데 성공했다면 true를 반환
해당 위치에서 images폴더를 여는데 실패했다면 false를 반환
//폴더 안에 파일을 읽을 때 사용합니다.
$readFile = readdir($opendir) 또는 readdir(opendir("./images"));
//열었던 디렉터리를 닫을 때 사용합니다.
close($opendir);
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//임시 저장된 정보
$myTempFile = $_FILES['myImage']['tmp_name'];
//파일 타입 및 확장자 구하기
$fileTypeExtension = explode("/", $_FILES['myImage']['type']);
//파일 유형
$fileType = $fileTypeExtension[0];
//파일 확장자
$extension = $fileTypeExtension[1];
//1. 이미지 파일 확인 -> 이미지 확장자 확인 -> 이미지 파일명 생성 -> 경로를 통한 이미지 저장
//2. 폴더 여부 확인 -> 폴더 열기 -> 파일 읽기 -> 파일 위치 이동 -> 파일 업로드 확인
//이미지 파일이 맞는지 확인
if($fileType == 'image'){
//이미지 확장자 파일이 맞는지 확인
if($extension == "jpeg" || $extension == "bmp" || $extension == "gif" || $extension == "png" || $extension == "jpg"){
//저장할 파일명 설정
$makingFileName = "myImage".time().rand(1,99999)."."."{$extension}";
//이미지 경로 설정
$myFile = "./images/{$makingFileName}";
$dir = "./images/";
//폴더 존재 여부 확인
if(is_dir($dir)){
//폴더 열기
$opendir = opendir($dir);
if($opendir == true){
$checkFile = true;
//파일 열기
while(($readFile = readdir($opendir)) != false){
//해당 파일이 있다면 변수 $checkFile에 false를 대입
if($makingFileName == $readFile){
$checkFile = true;
echo "해당 파일명은 이미 사용되고 있습니다.";
break;
}
}
if($checkFile == true){
//임시 저장된 파일을 우리가 저장할 위치 및 파일명으로 옮김
$imageUpload = move_uploaded_file($myTempFile, $myFile);
//업로드 성공 여부 확인
if($imageUpload == true){
echo "중복된 파일명이 없어 정상적으로 업로드 되었습니다.";
echo "<img src='{$myFile}' width='200'/>";
} else {
echo "파일 업로드에 실패하였습니다.";
}
}
} else {
//폴더를 열지 못했을때
echo "해당 폴더를 열지 못했습니다.";
}
}
} else {
//확장자가 맞지 않는 경우
echo "이미지 확장자 파일이 아닙니다";
exit;
}
} else {
//유형이 이미지가 아닌경우
echo "이미지 파일이 아닙니다.";
exit;
}
?>
</body>
</html>
파일 함수를 사요하면 파일을 생성한 후 텍스트 파일에 내용을 입력할 수 있으며 파일 내용을 읽어들일 수 있스니다.
fopen("파일 경로 및 파일명", 파일을 여는 옵션);
$fp = fopen("파일 경로 및 파일명");
$fw = fwrites($fp, "파일 쓸 내용");
fclose("열린 파일");
옵션 | 설명 |
---|---|
f |
파일을 읽기 전용으로 열기( 이 옵션으로 파일을 열면 쓰기 불가) |
w |
파일을 쓰기 전용으로 열기(기본 파일이 있을 경우 내용이 삭제되고 처음부터 다시 씀) |
a |
파일을 쓰기 전용으로 열기(기본 파일이 있을 경우 내용 뒤에 덧붙임) |
r+ |
파일을 읽고 쓸 수 있게 열기(기본에 파일이 있을 경우, 내용이 삭제되고 처음부터 다시 씀) |
a+ |
파일을 읽고 쓸 수 있게 열기( 기본 파일이 있을 경우, 내용 뒤에 덧붙임) |
<?php
//파일에 쓸 내용
$content = "Hello PHP";
//저장할 파일명
$fileName = "HelloWorld.txt";
//파일 열기
$fp = fopen('./myFiles/'.$fileName,'w');
//파일 쓰기
$fw = fwrite($fp, $content);
//파일 쓰기 성공 여부
if($fw == false){
echo "파일 쓰기가 실패했습니다. Yes";
} else {
echo "파일 쓰기 완료 No";
}
//파일 닫기
fclose($fp);
?>
$fq = fopen("파일 경로 및 파일명", 'r+'); $fr = fread($fq, "불러올 용량");
filesize("파일 경로 및 파일명");
file_exists("파일 경로 및 파일명");
<?php
$filePathName = "./myFiles/HelloWorld.txt";
//1. 파일 존재 여부 확인
if(file_exists($filePathName)){
//2. 파일 열기
$fp = fopen($filePathName, 'r');
if($fp){
//3. 파일 읽기
$fr = fread($fp, filesize($filePathName));
if($fr){
//4.내용 출력
echo $fr;
fclose($fp);
} else {
echo "파일 읽기에 실패했습니다.";
}
} else {
echo "파일 열기에 실패했습니다.";
}
} else {
echo "파일이 존지하지 않습니다.";
}
?>
<?php
$filePathName = "./myFiles/largeRow.php";
$content = $_POST['myInputText'];
$fp = fopen($filePathName, 'w');
if($fp){
$fw = fwrite($fp, $content);
if($fw){
echo "파일 쓰기 완료 yes";
}
}
?>
$fp = fopen("파일 경로 및 파일명", "r+");
$fr = fgets($fp, "불러올 용량");
<?php
$filePathName = "./myFiles/largeRow.php";
if(file_exists($filePathName)){
$fq = fopen($filePathName, 'r');
$readByte = 512;
if($fq){
while(($fr = fgets($fq, $readByte)) != false ){
echo $fr."
";
}
}
}
?>
<a href="주소" ping="통계자료를 수직할 주소"> 이름 </a>
<?php
include_once "../connectDB.php";
//
// //테이블 생성 위한 쿼리문
// $sql = "CREATE TABLE linkClickCount(";
// $sql .= "linkClickCountID INT UNSIGNED NOT NULL AUTO_INCREMENT,";
// $sql .= "linkNum INT UNSIGNED NOT NULL COMMENT '링크 고유 번호',";
// $sql .= "regTime DATETIME NOT NULL COMMENT '클릭한 시간',";
// $sql .= "PRIMARY KEY (linkClickCountID))";
// $sql .= "CHARSET=utf8 comment='링크 클릭 수 집계'";
//
// $res = $dbConnect->query($sql);
// if($res){
// echo "테이블 생성 완료";
// }else{
// echo "테이블 생성 실패";
// }
$linkNum = (int) $_GET['linkNum'];
if($linkNum == 0){
exit;
}
$sql = "INSERT INTO linkClickCount(linkNum, regTime)";
$sql .= "VALUES({$linkNum},NOW())";
$dbConnect->query($sql);
?>
Ajax(Asynchronous JavaScript and XML, 에이잭스)는 비동기적인 웹 애플리케이션의 제작을 위해 사용하는 웹 개발 기법이다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>화면 전환없이 아이디 중복 체크</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#idCheckBtn").click(function(){
//AJAX 통신 시작
$.ajax({
type: 'post', //post 방식으로 전달
dataType: 'json', //json 언어로 전달
url: './php44_idCheck.php',
data: {userId: $('#userId').val()}, //전달할 데이터
async: false, //값을 전달 받은 후 실행
success: function(data){
var word = "이미지 존재하는 아이디입니다.";
if(data.result == 'good'){
word = "아이디를 사용해도 좋습니다.";
}
$("#idCheckComment").text(word);
},
error : function(request, status, error){
console.log('request'+request);
console.log('status'+status);
console.log('error'+error);
}
});
});
});
</script>
</head>
<body>
<input type="text" name="userId" id="userId" placeholder="아이디 입력">
<input type="button" id="idCheckBtn" value="중복 확인">
<div id="idCheckComment"></div>
</body>
</html>
<?php
//echo json_encode(array('result'=>'good'));
include_once "../connectDB.php";
//중복 확인 요청 받은 아이디
$userId = $dbConnect->real_escape_string(trim($_POST['userId']));
//쿼리문 생성
$sql = "SELECT useID From myMember WHERE useID = '{$userId}'";
//쿼리문 질의
$res = $dbConnect->query($sql);
//전달할 데이터
$jsonResult = "bad";
//해당하는 레코드 수가 0이라면 중복되는 아이디가 없다는 뜻
if($res->num_rows == 0){
$jsonResult = "good";
}
echo json_encode(array('result'=>$jsonResult));
?>
쿠키와 세션은 어떠한 상태를 유지하는 기술입니다. 쿠키는 사용자의 컴퓨터에 상태를 저장하며 세션은 서버에 상태를 저장합니다.
쿠키를 사용할 때 주의할 점은 용량이(4kb)이기 때문에 그 이상의 데이터를 담으려면 다른 방법을 사용해야 하고 쿠기를 생성하기 전에 어떠한 문구가 있어서는 안됩니다. 쿠키 생성문은 가정 위에 위치해야 합니다. 세션도 동일
setcookie("쿠기이름", "쿠키값", 유지시간, "쿠키 적용 경로");
1분 동안 유지 : 1분 1초 60개 : time()+60
1시간 동안 유지 : 1시간 1분 60개 : time()+(60*60)
24시간 동안 유지 : 1시간 24개 : time()+(60*60*24)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>쿠키와 세션</title>
</head>
<body>
<?php
setcookie('myCookie', 'itIsMyCookie', time()+10000, '/');
if(isset($_COOKIE['myCookie'])){
echo "cooking creation completed";
} else {
echo "cooking creation failed";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>쿠키와 세션</title>
</head>
<body>
<?php
setcookie('myCookie', null, time()-10000, '/');
if(isset($_COOKIE['myCookie'])){
echo "cooking Existence";
} else {
echo "cooking creation Delete";
}
?>
</body>
</html>
$_SESSION['세션 이름'] = 세션 값;
<?php
session_start();
//세션 생성
$_SESSION['useId'] = 'webstoryboy';
if(isset($_SESSION['useId'])){
echo "Session Creation complete : {$_SESSION['useId']}";
} else {
echo "Session Creation false";
}
?>
ini_get("값을 확인할 php 설정 항목");
ini_set("값을 변경할 php 설정 항목", 변경할 값);
unset(세션명);
<?php
session_start();
$_SESSION['mySession6'] = 'jihune';
$_SESSION['mySession7'] = 'Jongsung';
//섹션 확인
echo "<pre>";
var_dump($_SESSION);
//섹션 삭제
if(session_destroy()){
echo "Confirm session delete";
}
?>
$_SESSION['섹션 이름'] = array();
$_SESSION['섹션 이름']['섹션 시간'] = time();
$_SESSION['섹션 이름']['유지 시간'] = 초 단위;
$_SESSION['섹션 이름']['유지 값'] = 값;
<?php
session_start();
//섹션을 배열형으로 선언
$_SESSION['mySession10'] = array();
//값을 대입하기 위해 2차원 배열 선언
$_SESSION['mySession10']['value'] = 'jeongahStory';
//섹션 생성 시간 대입
$_SESSION['mySession10']['generation'] = time();
//식션 지속 시간 대입
$_SESSION['mySession10']['duration'] = 10;
echo "<pre>";
var_dump($_SESSION['mySession10']);
?>
<?php
session_start();
//현재 시간에서 세션 생성 시간을 빼서 차이를 구함
$time = time() - (int) $_SESSION['mySession10']['generation'];
//차이의 값이 세션 유지 시간보다 크면 섹션 삭제
echo "{$time} Has passed since the session was created.<br>";
if( $time > $_SESSION['mySession10']['duration'] ){
unset($_SESSION['mySession10']);
}
//세션 존재 여부 확인
if( isset($_SESSION['mySession10'])){
echo "Session exists : {$_SESSION['mySession10']['value']} ";
} else {
echo "Session does not exist";
}
?>
class 클래스명 extends 상속 받을 클래스명
<?php
class operation{
function plus($num1, $num2){
$result = $num1 + $num2;
return "{$num1} + {$num2} = ".$result;
}
}
class load extends operation{}
//load 클래스의 인스턴스 생성
$load = new load;
echo $load->plus(1,2);
?>
public : 클래스 안에서든 밖에서든 접근 가능, 상속 가능
protected : 클래스 내부에서 접근 가능, 상속 가능
private : 클래스 내부에서만 접근 가능, 상속 불가능
<?php
class hello {
protected function say($word){
echo $word;
}
public function say2($word){
$this->say($word);
}
}
$hello = new hello;
$hello->say2("hello class");
?>
<?php
class hello {
protected function say($word){
echo $word;
}
}
class hello2 extends hello{
public function say2($word){
$this->say($word);
}
}
$hello2 = new hello2;
$hello2->say2("hello class");
?>
static function 메소드명(){};
접근 제한자 static function 메소드명(){};
//인스턴스를 생성하지 않고 메소드를 호출하는 방법 클래스명::메소드명();
<?php
class hello {
//static을 사용하여 메소드 생성
static function output($word){
echo "The method that prints the message
";
echo $word;
}
}
//인스턴스 생성하지 않고 클래스 메소드를 호출
hello::output("hello world");
?>