PHP Reference v1.0 </doc>
leehundothome.co.kr
leehundothome.co.kr
PHP는 서버사이트 스크립트 언어입니다. 제이쿼리와 자바스크립트는 웹 브라우저에서 내장된 인터프리터에 의해 해석되는 언어입니다. 즉 웹브라우저에서 이용할 수 있는 프로그램입니다. 반면에 PHP는 서버에 설치된 PHP에 의해 해석됩니다. 이러한 처리를 가능하게 해주는 프로그램 PHP, JSP, ASP 등이 있으며, 워드프레스, 줌라, XE, 카페24, 티스토리 등 플랫폼 역시 PHP를 기반으로 하고 있습니다.
<!DOCTYPE html>
<?php
echo "hello PHP";
?>
변수는 여러가지 값으로 변할 수 있는 수를 의미합니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title></title>
<script>
var x = "javascript";
document.write{x};
document.write{"<br>"};
document.write{"나는"+ x +"를 배우고 있습니다."};
document.write{"<br><br>"};
</script>
</head>
<body>
<?php
$javascript = "php";
echo $javascript;
echo "<br>";
echo "나는 ".$javascript."를 배우고 있습니다. ";
echo "<br>";
echo "나는 {$javascript}를 배우고 있습니다. ";
echo "<br>";
//큰 따옴표는 역슬래시 사용
echo "나는 \"PHP\"를 배우고 있습니다.";
echo "<br>";
echo "나는 \$15를 사용했습니다.";
?>
</body>
</html>
배열은 여러개의 값을 변수에 저장할 수 있습니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
var earth = new Array();
earth [0] = "korea";
earth [1] = "china";
document.write(earth[0]);
document.write("<br>");
document.write(earth[1]);
document.write("<br><br>");
</script>
</head>
<body>
<?php
//배열 선언
$earth = array();
$earth[0] = "korea";
$earth[1] = "china";
echo $earth[0];
echo "<br>";
echo $earth[1];
echo "<br><br>";
//인덱스 숫자뿐만 아니라 문자로도 저장이 가능합니다.
$earth['city'] = 'seoul';
echo $earth['city'];
?>
</body>
</html>
<!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>
<!DOCTYPE html>
<html lang="ko">
<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] = 'japan';
$earth['nation'][4] = 'china';
$earth['nation'][5] = 'france';
//배열의 내용을 보여줍니다.
var_dump($earth);
echo "<br><br>";
echo $earth['nation'][4];
?>
</body>
</html>
변수에 사용되는 값이 숫자인지, 문자열인지, 논리값인지를 구분하는 것을 데이터 형이라고 합니다.
데이터형 | 값 |
---|---|
int or interger | 숫자 - 정수 |
double | 숫자 - 소수 |
string | 문자열 |
boolen | 논리값(true,false) |
Null | 없는 값 |
array | 배열 |
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Document</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 />";
$na = null;
echo "변수 \$na 데이터형(값: {$na})은". gettype($na)."입니다.<br />";
$bloolean = true;
echo "변수 \$bloolean 데이터형(값: {$bloolean})은". gettype($bloolean)."입니다.<br />";
?>
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$str = "문자열";
echo "데이터형 변경 php05.php전의 데이터형".gettype($str)."값은 : {$str3} <br>";
$str = (int) $str;
echo "데이터형 변경 후의 데이터형".gettype($str)." 값은 : {$str}";
echo "<br><br>";
$str2 = "555문자열";
echo "데이터형 변경 전의 데이터형".gettype($str2)."값은 : {$str3} <br>";
$str2 = (int) $str2;
echo "데이터형 변경 후의 데이터형".gettype($str2)." 값은 : {$str2}";
echo "<br><br>";
$str3 = "12.45434";
echo "데이터형 변경 전의 데이터형".gettype($str3)."값은 : {$str3} <br>";
$str3 = (int) $str3;
echo "데이터형 변경 후의 데이터형".gettype($str3)." 값은 : {$str3}";
?>
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$music = 'dream lights';
if($music == 'dream lights'){
echo "당신이 좋아하는 음악은 dream lights입니다.";
} else {
echo "당신이 좋아하는 음악은 dream lights가 아닙니다.";
}
$date = "데이터 형";
if(gettype($date) == 'string'){
echo "데잍터형은 문자열입니다.";
} else if(gettype($date) == 'interder'){
echo "데잍터형은 정수형입니다.";
} else {
echo "데이터형은 정수형도 문자열도 아닙니다.";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$data = "hello";
switch ($data) {
case 'annyung':
echo "한국어 인사입니다.";
break;
case 'konnichiha':
echo "일본어 인사입니다.";
break;
case 'hello':
echo "영어 인사입니다.";
break;
default:
echo "한국어, 일본어, 영어 인사가 아닙니다.";
break;
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
//1~10까지 출력해주세요~
for (var i = 1; i <=12; i++) {
document.write(i);
}
</script>
</head>
<body>
<select id="birthMonnth" name="birthMonnth">
<!-- <option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option> -->
<?php
for($i = 1; $i <=12; $i++){ ?>
<option value="<?=$i?>"><?=$i?></option>
<?php } ?>
</select>
<label for="birthMonnth">월</label>
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<select id="birthMonnth" name="birthMonnth">
<?php
//8월에 기본 선택되도록 변수 선언
$selectMonth = 8;
for($i = 1; $i <=12; $i++){
$selected = '';
if($i == $selectMonth){
$selected = "selected";
}
?>
<option value="<?=$i?>" <?=$selected?>><?=$i?></option>
<?php } ?>
</select>
<label for="birthMonnth">월</label>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$member = array();
//member 배열에 0 인덱스를 생성하고 인덱스도 배열로 선언
$member[0] = array();
$member[0]['name'] = '김순실';
$member[0]['userID'] = 'richcl';
$member[0]['email'] = 'richdle@naver.com';
$member[1] = array();
$member[1]['name'] = '장영실';
$member[1]['userID'] = 'jang';
$member[1]['email'] = 'jang999@naver.com';
$member[2] = array();
$member[2]['name'] = '김경민';
$member[2]['userID'] = 'kim';
$member[2]['email'] = 'jkim999@naver.com';
$member[3] = array();
$member[3]['name'] = '김민수';
$member[3]['userID'] = 'sum';
$member[3]['email'] = 'jkim999@naver.com';
for($i = 0; $i < count($member); $i++){
echo $member[$i]['name']."<br>";
}
?>
</body>
</html>
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$member = array();
//member 배열에 0 인덱스를 생성하고 인덱스도 배열로 선언
$member[0] = array();
$member[0]['name'] = '김순실';
$member[0]['userID'] = 'richcl';
$member[0]['email'] = 'richdle@naver.com';
$member[1] = array();
$member[1]['name'] = '장영실';
$member[1]['userID'] = 'jang';
$member[1]['email'] = 'jang999@naver.com';
$member[2] = array();
$member[2]['name'] = '김경민';
$member[2]['userID'] = 'kim';
$member[2]['email'] = 'jkim999@naver.com';
$member[3] = array();
$member[3]['name'] = '김민수';
$member[3]['userID'] = 'sum';
$member[3]['email'] = 'jkim999@naver.com';
/* for($i = 0; $i < count($member); $i++){
echo $member[$i]['name']."<br>";
}
*/
foreach($member as $data){
echo $data['name']."<br>";
}
?>
</body>
</html>
trim()은 문자열의 앞과 뒤에 공백을 삭제하는 기능입니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$str = " 안녕하세요. ";
echo "trim을 사용하지 않은 경우 <br>";
echo "|".$str."|";
echo "<br><br>";
echo "trim을 사용한 경우 <br>";
echo "|".trim($str)."|";
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$str = "hello World";
echo $str;
echo "<br><br>";
echo "대문자로 출력<br>";
echo strtoupper($str);
echo "<br><br>";
echo "소문자로 출력<br>";
echo strtolower($str);
?>
</body>
</html>
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$str = "welcome to my homepage";
echo $str."의 문자열 길이는 ".strlen($str)."입니다.";
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$str = "Hello World";
$changeWord = str_replace("World", "Sang yung", $str);
echo $changeWord;
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$fileName = "devilcat.jpg";
$execute = substr($fileName, -4, 4);
if($execute == '.jpg' || $execute == '.png' || $execute == '.gif'){
echo "업로드한 파일은 이미지 파일입니다.";
} else {
echo "업로드한 파일은 이미지 파일이 아닙니다.";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>explode</title>
</head>
<body>
<?php
$email = "webstroyboy@naver.com";
$emailArray = explode("@", $email);
echo "<pre>";
var_dump($emailArray);
echo "<br>";
echo $emailArray[1];
?>
</body>
</html>
time()이라는 함수는 리눅스 시간을 출력해주는 함수입니다. 리눅스 시간이란? 1970년 1월 1일 00시 00분 00초부터 세기 시작하는 시간입니다. 그러므로 time() 함수는 1970년 1월 1일 00시 00분 00초로부터 몇 초가 지났는지를 반환합니다. 이 리눅스 시간을 "타임스탬프"라고 합니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
ini_set('date.timezone','Asia/Seoul');
echo '1970년 1월 1일 00시 00분 00초로부터 '.time().'초가 지났습니다.';
echo '<br>';
echo "현재시간은 ".date("Y년 m월 d일 H시 i분 s초", time());
?>
</body>
</html>
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
ini_set('date.timezone','Asia/Seoul');
//echo "2018년 8월 2일 11시 15분 14초의 타임스탬프는? <br>";
//echo mktime(11, 15, 14, 8, 2, 2018);
$startTime = mktime(11, 15, 14, 8, 2, 2018);
$endTime = mktime(11, 20, 14, 8, 2, 2018);
if($startTime <= time() && $endTime > time()){
echo "지금은 수업시간입니다.";
} else {
echo "지금은 쉬는 시간입니다.";
}
?>
</body>
</html>
분류 | 문자 | 설명 | 예 |
---|---|---|---|
일 | 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 |
GET은 데이터를 불러올 때 사용하는 방식이고 POST는 데이터를 입력할 때 사용하는 방식입니다.
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//http://leehun8.dothome.co.kr/PHP/php22.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>Document</title>
</head>
<body>
<?php
echo "이메일 주소 입력값 " .$_POST['email']."<br>";
echo "패스워드 입력값 " .$_POST['password']."<br>";
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</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('나는 인간이다');
?>
</body>
</html>
<!DOCTYPE html>
<?php
$host = "localhost";
$user = "leehun8";
$pw = "forever0";
$dbName = "leehun8";
$dbConnect = new mysqli($host, $user, $pw, $dbName);
$dbConnect->set_charset("utf8");
if(mysqli_connect_errno()){
echo "데이터베이스 접속 실패";
echo mysqli_connect_errno();
} else {
echo "데이터베이스 접속 성공";
}
?>
<?php
//mysql 접속 소스를 include
include_once "../connectDB.php";
//데이터 입력
$userID = "webstroyboy";
$name = "leehun";
$userPW = "1234";
$email = "leehun@naver.com";
$birth = "1999-04-05";
$gender = "m";
//쿼리문 작성
$sql = "INSERT INTO myMember(useID, uname, upassword, email, birthDay, gender, regTime) VALUES";
$sql .= "('{$userID}','{$name}','{$userPW}','{$email}','{$birth}','{$gender}',NOW())";
//쿼리문 전송 및 전송값을 result 변수에 대입
$result = $dbConnect->query($sql);
if($result){
echo "yes";
}else {
echo "no";
}
//INSERT INTO myMember(useID, uname, upassword, email, birthDay, gender, regTime) VALUES('webs', '김장거', 'sdfsd', 'riluy@naver.com', '1936-04-05', 'm', now());
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>회원가입</h1>
<form action="php25-insert.php">
<label for="userName">이름</label>
<input type="input" id="userName" name="userName" placeholder="이름입력"><br>
<label for="userID">ID</label>
<input type="input" id="userID" name="userID" placeholder="ID입력"><br>
<label for="userPW">PW</label>
<input type="input" id="userPW" name="userPW" placeholder="비밀번호 입력"><br>
<label for="userGender">성별</label>
<select name="userGender" id="userGender">
<option value="m">남성</option>
<option value="w">여성</option>
</select>
<label for="userEmail">이메일</label>
<input type="Email" id="userEmail" name="userEmail" placeholder="이메일 입력"><br>
<input type="submit" value="가입하기"/>
</form>
</body>
</html>
<?php
//mysql 접속 소스를 include
include_once "../connectDB.php";
//post 방식으로 전달 받은 값 확인
echo "<pre>";
var_dump($_POST);
//이름 검증
if($_POST['userName'] == '' || $_POST['userName'] == null){
echo "해당 값을 사용할 수 없습니다. 1.name";
exit;
}
$userName = $_POST['userName'];
//앞 뒤 공백제거
$userName = trim($userName);
//쿼리문의 따옴표 처리를 위해 real_escape_string 메소드 사용
$userName = $dbConnect->real_escape_string($userName);
//아이디 검증
if($_POST['userID'] == '' || $_POST['userID'] == null){
echo "해당 값을 사용할 수 없습니다. 2.id";
exit;
}
$userID = $_POST['userID'];
$userID = trim($userID);
$userID = $dbConnect->real_escape_string($userID);
//비빌번호 검증
if($_POST['userPW'] == '' || $_POST['userPW'] == null){
echo "해당 값을 사용할 수 없습니다. 3.pw";
exit;
}
$userPW = sha1("web".$_POST['userPW']);
//
if($_POST['userGender'] == 'm' || $_POST['userGender'] == 'w'){
$userGender = $_POST['userGender'];
} else {
echo "해당 값을 사용할 수 없습니다. 4.userGender";
exit;
}
//이메일 유효성 검사
$emailCheck = filter_var($_POST['userEmail'], FILTER_VALIDATE_EMAIL);
if($emailCheck == false){
echo "해당 값을 사용할 수 없습니다. 5";
exit;
}
$userEmail = $_POST['userEmail'];
//쿼리문 작성
$sql = "INSERT INTO myMember(useID, name, password, email, gender) VALUES";
$sql .= "('{$userID}', '{$userName}', '{$userPW}', '{$userEmail}', '{$userGender}')";
//쿼리문 전송 및 전송값을 result 변수에 대입
$result = $dbConnect->query($sql);
if($result){
echo "회원 가입 정보 입력 완료 (OK)";
} else {
echo "회원 가입 정보 입력 실패 (No)";
}
?>
<!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 = $dbConnect->query($sql);
$memberInfo = $result->fetch_array(MYSQLI_ASSOC);
echo "<pre>";
var_dump($memberInfo);
echo "회원번호가 {$myMemberID}번인 회원의 이름은 ".$memberInfo['name'];
//SELECT * FROM mymember WHERE myMemberID = 1
?>
</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 name, useID FROM myMember";
$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['name'].", 회원 ID ".$memberInfo['useID']." <br>";
}
} else {
echo "데이터가 없습니다.";
}
?>
</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 name, useID FROM myMember ORDER BY name DESC";
$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['name'].", 회원 ID ".$memberInfo['useID']." <br>";
}
} else {
echo "데이터가 없습니다.";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//mysql 접속 소스를 include
include_once "../connectDB.php";
//성 배열 선언
$familyName = array();
//성 데이터 입력
$familyName = ['김', '이', '박', '전', '황', '목', '송', '정', '노', '최', '조', '백', '윤', '양'];
//이름 배열 선언
$lastName = array();
//이름 데이터 입력
$lastName = ['유리', '경민', '민수', '하루', '기욱', '태진', '미우', '창석', '상연', '해윤', '가연', '오리'];
//성별 배열 선언
$gender = ['m','w'];
//테이블에 회원 정보 입력 성공 카운드
$successCount = 0;
//테이블에 회원정보 입력 실패 카운드
$failCount = 0;
//insert문을 500회 작동시키기위한 for문
for($i = 1; $i <= 500; $i++){
//랜덤으로 성을 받음
$numRandomFN = rand(0,count($familyName) - 1);
//랜덤으로 이름을 받음
$numRandomLN = rand(0,count($lastName) - 1);
//랜덤으로 성별을 받음
$userGender = $gender [rand(0,1)] ;
//랜덤으로 비밀번호를 받음
$userPw = sha1("kim".rand(1,1000));
//랜덤으로 부여 받은 이름을 하나의 데이터로 합침
$userName = $familyName[numRandomFN].$lastName[$numRandomLN];
//랜덤으로 아이디를 부여
$userId = "kim".rand(1,999999);
//랜덤으로 이메일을 부여
$email = "web".rand(1,9999999)."@naver.com";
//데이터 입력
$sql = "INSERT INTO myMember(useID, name, password, email, gender, regTime) VALUES";
$sql .= "('{$userId}', '{$userName}','{$userPw}','{$userGender}','{$email}', now())";
$result = $dbConnect->query($sql);
if($result){
$successCount++;
} else {
$failCount++;
}
}
//반복문이 끝난 후 실행 결과
echo "입력 성공 수 {$successCount}";
echo "<br>";
echo "입력 실패 수 {$failCount}";
?>
</body>
</html>
<?php
//mysql 접속 소스를 include
include_once "../connectDB.php";
//현재 페이지 값을 변수에 저장
// $page = 1;
//첫번째 뷰를 구하는 공식
// $sql = "SELECT * FROM myMember LIMIT 0, 50";
// 1. 페이지 = SELECT * FROM myMember LIMIT 0, 50
// 2. 페이지 = SELECT * FROM myMember LIMIT 50, 50
// 3. 페이지 = SELECT * FROM myMember LIMIT 100, 50
// 4. 페이지 = SELECT * FROM myMember LIMIT 150, 50
// $firstLimitValue = ($numView * 1) - 50;
// $firstLimitValue = ($numView * 2) - 50;
// $firstLimitValue = ($numView * 3) - 50;
// $firstLimitValue = ($numView * 4) - 50;
if (isset($_GET['page'])) {
$page = (int) $_GET['page'];
} else {
//페이지 값을 1로 초기화
$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%;}
table td {border: 1px solid #ccc;}
</style>
</head>
<body>
<h1>고객 리스트</h1>
<table>
<tr>
<td>번호</td>
<td>ID</td>
<td>이름</td>
<td>이메일</td>
<td>성별</td>
<td>가입일</td>
</tr>
<?php
for ($i=0; $i < $result->num_rows; $i++) {
$memberInfo = $result->fetch_array(MYSQLI_ASSOC);
?>
<tr>
<td><?=$memberInfo['myMemberID']?></td>
<td><?=$memberInfo['useID']?></td>
<td><?=$memberInfo['name']?></td>
<td><?=$memberInfo['email']?></td>
<td><?=$memberInfo['gender']?></td>
<td><?=$memberInfo['regTime']?></td>
</tr>
<?php } ?>
</table>
</body>
</html>
<?php
//mysql 접속 소스를 include
include_once "../connectDB.php";
//이름 정보를 int로 형 변환
$myMemberID = (int) $_POST['memberID'];
if($myMemberID == 0){
echo "값이 유효하지 않습니다.";
exit;
}
if($_POST['cn'] == '' || $_POST['cn'] == null){
echo "값이 유효하지 않습니다.";
exit;
} else {
$cn = $dbConnect->real_escape_string($_POST['cn']);
}
$sql = "UPDATE myMember SET name = '{$cn}' WHERE myMemberID = {$myMemberID}";
$result = $dbConnect->query($sql);
if ($result) {
echo "회원번호 {$myMemberID}의 이름이 {$cn}으로 변경되었습니다.";
} else {
echo "이름 변경 실패";
}
?>
<?php
//mysql 접속 소스를 include
include_once "../connectDB.php";
$sql = "DELETE FROM myMember WHERE myMemberID =14";
$res = $dbConnect->query($sql);
if($res){
echo "14번 회원의 정보가 삭제되었습니다(Y).";
} else {
echo "삭제 실패(N)";
}
?>
PHP와 MySQL의 연동에서는 테이블에 이름을 저장할 때 그 값이 빈값인지 확인하고 real_escape_string 처리하여 데이터베이스에 입력했습니다. 이 값이 한글로만 구성되어 있는지 영어로만 구성되어 있는지 또는 어떤 특별한 패턴을 지키고 있는지에 대해 체크하려면 정규 표현식을 사용합니다.
<?php
$pattern = '/^[가-힣]+$/';
$myName = '드루킹';
if(preg_match($pattern, $myName, $matches)){
echo "값 {$myName}은 정규식 표현에 적합합니다.";
echo "<pre>";
var_dump($matches);
} else {
echo "이름에 특수문자, 영문, 숫자를 사용할 수 없습니다.";
}
?>
<?php
$pattern = '/^(010|011|016|017|018|019)-[0-9]{3,4}-[0-9]{4}$/';
$myPhone = '012-3939-3030';
if(preg_match($pattern, $myPhone, $matches)){
echo "휴대폰 번호로 입력된 값 {$myPhone}는 유효성에 일치합니다.";
echo "<pre>";
var_dump($matches);
} else {
echo "사용불가한 번호입니다.";
}
?>
\-처럼 앞에 역슬래시를 사용하는 이유는 -가 정규 표현식에서 간격을 조정하는 기능을 담고 있기 때문입니다. 이것을 기능으로 사용하는 것이 아니라 문자로 사용하기 위해\를 앞에 붙입니다. \를 앞에 붙이면 문자로 사용하겠다는 것을 의미합니다.
@를 기준으로 뒤에는 호스트가 붙으면 끝에는 .com이나 .co.kr가 붙을 수 있습니다.
<?php
$pattern = '/^[a-zA-z0-9_\-\.]+@[a-zA-z\-]+\.[\.a-zA-Z]+$/';
$myEmail = 'leehun@naver.com';
if(preg_match($pattern, $myPhone, $matches)){
echo "입력한 이메일 주소 {$myEmail}는 사용가능한 이메일 주소입니다.";
echo "<pre>";
var_dump($matches);
} else {
echo "사용불가한 이메일입니다.";
}
>>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>파일 업로드</h1>
<form name="fileUpload" method="post" action="php36_file.php"
enctype="multipart/form-data">
<input type="file" name="myImage" />
<input type="submit" value="파일 등록">
</form>
</body>
</html>
디렉터리 함수에는 is_dir(), opendir(), closedir(), readdir()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//체크할 디렉터리를 대입
$dir = "./images/";
//폴더가 있는지 확인
if(is_dir($dir)){ //디렉터리 존재 유무를 확인
$opendir = opendir($dir); //디렉터리를 사용하기 위해서 opne;
if($opendir == true){
while(($file = readdir($opendir)) != false){
echo $file."<br />";
}
}
//폴더를 열지 못했을 때
else {
echo "해당 폴더를 열지 못했습니다.";
exit;
}
}
//폴더가 없는 경우
else {
echo "해다 폴더가 없습니다.";
exit;
}
?>
</body>
</html>
파일 함수를 사용하면 파일을 생성한 후 텍스트 파일에 내용을 입력할 수 있으며 파일 내용을 읽어들일 수도 있습니다.
r | 파일을 읽기 전용으로 열기(이 옵션으로 파일을 열면 쓰기 불가 | |
w | 파일을 쓰기 전용으로 열기(기존 파일이 있을 경우, 내용이 삭제되고 처음부터 다시 씀) | |
a | 파일을 쓰기 전용으로 열기(기존파일이 있을 경우, 내용 뒤에 덧붙임) | |
r+ | 파일을 읽고 쓸 수 있게 열기(기존에 파일이 있을 경우, 내용은 삭제되고 처음부터 다시 씀 | |
a+ | 파일을 읽고 쓸 수 있게 열기(기존에 파일이 있을 경우, 내용 뒤에 덧붙임 |
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//파일에 쓸 내용
$content = "HELLO HH";
//내용을 저장할 파일명
$fileName = "helloWorld.txt";
//파일 열기
$fp = fopen('./myFiles/'.$fileName, 'w');
//파일 쓰기
$fw = fwrite($fp, $content);
//파일 쓰기 성공여부
if($fw == false){
echo "파일 쓰기에 실패했습니다.";
} else {
echo "파일 쓰기 완료";
}
//파일 닫기
fclose($fp);
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$filePathName = "./myFiles/helloWorld.txt";
//파일 존재 여부 확인
if(file_exists($filePathName)){
//파일 열기
$fp = fopen($filePathName, 'r');
if ($fp) {
//파일 읽기
$fr = fread($fp, filesize($filePathName));
if ($fr) {
echo $fr; //내용출력
fclose($fp); //파일닫기
} else {
echo "파일 읽기에 실패했습니다.";
}
} else {
echo "파일 열기에 실패했습니다.";
}
} else {
echo "파일이 존재하지 않습니다.";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$filePathName = "./myFiles/largeRow.php";
if (file_exists($filePathName)){
$fp = fopen($filePathName, 'r');
//읽어올 용량 설정
$readByte = 512;
if ($fp) {
while (($fr = fgets($fp, $readByte)) != false){
echo $fr."<br>";
}
}
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<a href="http://leehun.dothome.co.kr" ping="php44_ping.php?linkNum=1">LEEHUN</a>
</body>
</html>
<?php
//mysql 접속 소스를 include
include_once "../connectDB.php";
$linkNum = (int) $_GET['linkNum'];
if ($linkNum == 0) {
exit;
}
$sql = "INSERT INTO linkClickCount(linkNum, regTime)";
$sql = "VALUES({$linkNum}, NOW())";
$dbConnect->query($sql);
?>
<?php
//mysql 접속 소스를 include
include_once "../connectDB.php";
//테이블 생성을 위한 쿼리문
$sql = "CREATE TABLE linkClinkCount(";
$sql .= "linkClinkCountID INT UNSIGNED NOT NULL AUTO_INCREMENT,";
$sql .= "linkNUM INT UNSIGNED NOT NULL COMMENT '링크 고유번호',";
$sql .= "regTime DATETIME NOT NULL COMMENT '클릭한 시간',";
$sql .= "PRIMARY KEY(linkClinkCountID))";
$sql .= "CHARSET=utf8 comment='링크 클릭 수 집계'";
$res = $dbConnect->query($sql);
if ($res) {
echo "yes";
} else {
echo "no";
}
?>
쿠키와 세션은 어떠한 상태를 유지하는 기술입니다. 쿠키는 사용자의 컴퓨터에 상태를 저장하며 세션은 서버에 상태를 저장합니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
setcookie('myCookie','itIsMyCookie',time()+10000,'/');
if(isset($_COOKIE['myCookie'])){
echo "쿠키 생성 완료 쿠키 값은 {$_COOKIE['myCookie']}";
} else {
echo "쿠키 생성 실패";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
setcookie('myCookie',null, time()-3600,"/");
if(isset($_COOKIE['myCookie'])){
echo "쿠키가 존재합니다. ";
} else {
echo "쿠키가 삭제되었습니다.";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
session_start();
//세션 생성
$_SESSION['userId'] = 'leehun';
if (isset($_SESSION['userId'])){
echo "세션 생성 완료 아이디 값: {$_SESSION['userId']}";
} else {
echo "세션 생성 실패";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//페이지의 모든 코드를 처리한 후 출력문을 처리하는 기능
ob_start();
session_start();
//php 설정 항목 중 session.cookie_lifetime의 값을 가져와서 0이면 변경
if (ini_get('session.cookie_lifetime') == 0){
ini_set('session.cookie_lifetime', 10);
}
session_start();
//세션 생성
$_SESSION['mySession'] = 'lee';
if(isset($_SESSION['mySession'])){
echo "세션 생성 완료 : {$_SESSION['mySession']}";
} else {
echo "세션 생성 실패";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
session_start();
//세션 생성
$_SESSION['mySession5'] = 'hun';
echo "세션 생성 후 존재 여부 확인 <br>";
if(isset($_SESSION['mySession5'])){
echo "mySession5 세션이 존재합니다. <br>";
} else {
echo "mySession5 세션이 존재하지 않습니다. <br><br>";
}
//세션 삭제
unset($_SESSION['mySession5']);
echo "세션 삭제 후 존재 여부 확인 <br>";
if(isset($_SESSION['mySession5'])){
echo "mySession5 세션이 존재합니다. <br>";
} else {
echo "mySession5 세션이 존재하지 않습니다. <br>";
}
?>
</body>
</html>
<?php
class operation{
function plus($num1, $num2){
$result = $num1 + $num2;
return "{$num1}+{$num2} = ".$result;
}
}
class load extends operation{}
//인스턴스 생성
$load = new load;
echo $load->plus(1,2);
?>
접근 제한자의 종류에는 public, private, protected가 있으며, 접근 제한자를 지정하지 않았을 경우 public이 기본값으로 사용됩니다.
public | 클래스 안에서든 밖에서든 접근 가능, 상속 가능 |
protected | 클래스 내부에서 접근 가능, 상속 가능 |
private | 클래스 내부에서만 접근 가능, 상속 가능 |
<?php
class hello {
protected function say($word){
echo "$word";
}
}
//인스턴스 생성
$hello = new hello;
$hello->say("Hello World");
?>
접근 제한자 protected로 생성된 메소드를 접근 제한자 public이 선언된 메소드로 호출하여 사용할 수 있습니다.
<?php
class hello{
protected function say($word){
echo "$word";
}
public function say2($word){
$this->say($word);
}
}
$hello = new hello;
$hello->say2("hello world");
?>
protected로 선언된 메소드는 하위클래스에서도 호출 할 수 있습니다.
<?php
class hello {
protected function say($word){
echo "$word";
}
}
//클래스 hello를 상속 받음
class hello2 extends hello{
public function say2($word){
//클래스 hello를 상속받았으므로 say메소드에 접근 가능
$this->say($word);
}
}
$hello2 = new hello2;
$hello2->say2("hello world");
?>
클래스를 사용하기 위해서는 클래스의 인스턴스 생성하고 메소드를 호출해야 합니다. 인스턴스를 생성하지 않고 클래스 외부에서 메소드를 호출하는 방법을 사용합니다.
<?php
class hello{
//static를 사용해서 메소드를 생성
static function output($word){
echo "메세지를 출력하는 메소드<br>";
echo $word;
}
}
//인스턴스 생성하지 않고 클래스 hello의 메소드 output호출
hello::output("hello world");
?>