http://blog.naver.com/redfila?Redirect=Log&logNo=120099829413
http://handsome.pe.kr/27
<?php
/*
AMP -> Wamp
Apache, My-SQL, PHP
*/
includ "inc_head.php"; // include
echo "hello php";
#phpinfo() 설정
phpinfo(); // php설정 출력
print_r($GLOBALS); // 모든환경변수
/*
register_globals: 전역 변수화
on 일 경우 변수명만 써줘도 get이나 다른 입력 방식으로 입력된 변수를 인식함
보안 땜시 off 설정 추세 PHP6 부터는 무조건 off ?
- extract()함수는 배열 속의 키값을 변수화 시켜주는 함수이다.
extract($_POST);
extract($_GET);
extract($_REQUEST); <-- 이거 둘다 되는지 확인 안해봄
*/
#파라미터 처리
// ?name=test 로 넘어 올경우 register_globals=on , extract($_GET)||extract($_POST) 이것도 자동 배치
echo $name; // test 자동 출력
// 정석대로 할려면
$g_name = $_GET['name']; // GET 으로 넘어온 'name' 값
$p_name = $_POST['name']; // POST 로 넘어 온값
$r_name = $_REQUEST['name']; // 둘다 포함
echo $g_name.$r_name;
#변수와 연산자
// 아래 str=string 타입, num=Number 타입으로 전혀 다른변수이다.
$str = "1";
$num = 1;
// 비교해보자(정확히는 "1" , "" 으로 나옴)
print($str == $num); // true "==" <- 연산자는 데이터타입 비교 안하고 값만 보고 비교
print($str === $num); // false "==" <- 데이터타입까지 비교
// 변수값이 "", 0, 0.0 을 제외 하고 bool 과 비교시 모두 true 임
$a = $str+$num
echo ($a); // "2" 가 나옴 "11" 나오게 할려면 $str.$num
echo (3+"asdfs"); // 3+0 으로 계산 해서 "3" 이 나옴
1. 논리 연산자 | ||
종류 | 사용예 | 설명 |
and | a and b | a 가 참이고 b 도 참일때 참 |
or | a or b | a 와 b 중 둘중에 하나가 참일때 참 |
xor | a xor b | a 와 b 중 둘중에 하나만 참일때 참 |
not | !a | a 가 아닐때 참 |
and | a && b | a 가 참이고 b 도 참일때 참 |
or | a || b | a 와 b 중 둘중에 하나가 참일때 참 |
2. 비교연산자 | ||
종류 | 사용예 | 설명 |
< | a < b | |
> | a > b | a가 b 보다 크면 참 |
<= | a <= b | a가 b보다 작거나 같으면 참 |
>= | a >= b | a가 b보다 크거나 같으면 참 |
== | a == b | a와 b가 같으면 참 |
!= | a != b | a와 b가 다르면 참 |
<> | a <> b | a와 b가 다르면 참 |
=== | a === b | a와 b가 같으면 참 |
!== | a !== b | a와 b가 다르면 참 |
3. 산술 연산자 | ||
종류 | 사용예 | 설명 |
더하기 | 1 + 2 | 결과값 : 3 |
빼기 | 2 - 1 | 결과값 : 1 |
곱하기 | 2 * 3 | 결과값 : 6 |
나누기 | 04월 02일 | 결과값 : 2 |
증가 | $a++ | 현재 $a 값에서 1 증가 |
감소 | $a-- | 현재 $a 값에서 1 감소 |
나머지 | 5 % 2 | 결과값 : 1 (5를 2로 나눈 나머지) |
4. 문자열 연산자 | ||
종류 | 사용예 | 설명 |
합치기 | $a.$b | 문자열 $a 와 $b를 합침 |
$a = "안녕"; | ||
$b = "하세요"; | ||
$a.$b 는 "안녕하세요" 가 됩니다. | ||
5. 대입 연산자 | ||
종류 | 사용예 | 설명 |
= | $a = 3 | 변수 a에 3을 대입 |
+= | $a += 3 | 변수 a에 3을 더한 값을 $a에 대입 ($a = $a + 3) |
-= | $a -= 3 | 변수 a에 3을 뺀 값을 $a에 대입 ($a = $a - 3) |
*= | $a *= 3 | 변수 a에 3을 곱한 값을 $a에 대입 ($a = $a * 3) |
/= | $a /= 3 | 변수 a를 3으로 나눈 값을 $a에 대입 ($a = $a / 3) |
%= | $a %= 3 | 변수 a를 3으로 나눈 나머지값을 $a에 대입 ($a = $a % 3) |
.= | $a .= $b | 변수a 의 문자열에 변수 b의 문자열을 합친 문자열을 변수 a에 대입 |
($a = $a.$b) |
#for 구구단
echo "<table border=\"1\">"
echo " <tr>"
for($i=2;$i<=9;$i++){
echo "<td>";
echo "구구단 ".$i."단<br/>";
echo "==========<br/>";
// 각 구구단 별 내용 출력
for($j=1;$j<=9;$j++){
echo $i." x ".$j." = ".($i*$j)."<br/>";
}
echo "</td>";
if($i == 5){
echo "</tr><tr>";
}
}
echo " </tr>"
echo "</table>"
# 배열(java의 배열와 맵을 썩어놓은것 )
//array 형태 키 값을 따로 지정하지 않으면 0, 1, 2 ..... 씩으로 들어가는거 같음
$arr = array("array1", "array2", "array3");
// map 형태
$arr1['key1'] = "value1";
$arr1['key2'] = "value2";
$arr1['key3'] = "value3";
$arr11 = array("key11" => "value11", "key22" => "value22", "key33" => "value33");
# 내장함수
// strlen($string) : 문자의 길이
echo strlen("12345"); // 5 : 문자의 길이
// count($array) : arr.length 배열의 원소개수(length) 리턴;
echo count($arr); // 3
// print_r($array) : 배열 내용표시 ;
echo print_r($arr); // Array ( [0] => array1 [1] => array2 [2] => array3 )
// explode($separator, $string) : java의 split
$expStr = "expStr1,expStr2,expStr3"; // ',' 로 분리된 문자 변수
$expArr = explode(",",$expStr); // ',' 기준으로 짤라 배열로 만듬.
echo print_r($expArr); // Array ( [0] => expStr1 [1] => expStr2 [2] => expStr3 )
// implode($separator, $string): explode와 반대 배열값을 구분자를 붙여서 문자로 만듬
$impStr = implode(",", $expArr);
echo $impStr; // expStr1,expStr2,expStr3
// trim($string) : 문자열 앞뒤 공백제거, ltrim($string) : 좌측공백만 제거, rtrim($string) : 우측공백만 제거 [중간공백은 제거 안함]
$str =" a b c ";
echo trim($str) // a b c
// str_replace($oldStr, $newStr, $string) : 문자열 변경
$str = "oldboy";
echo str_replace("old", "young", $str); // youngboy
// str_pad($string, $length) : 칸채우기
// str_pad($string, $length, $code) : 칸채우기
// str_pad($string, $length, $code, STR_PAD_LEFT||STR_PAD_RIGHT||STR_PAD_BOTH) : 칸채우기
$str = "test";
echo str_pad($str, 5) // "test " --> 문자길이를 5로 만듬 우측에 공백을 채운다
echo str_pad($str, 5, "*") // "test*" --> 공백대신 '*' 을 넣는다.
echo str_pad($str, 5, "*", STR_PAD_LEFT) // "*test" --> 별을 좌측에 붙임, RIGHT=우측, BOTH= 양쪽
// str_repeat($string, $count) : 두번째인수 만큼 문자를 반복함.
echo str_repeat($str, 3) // testtesttest
// str_split($string) : explode 와 비슷하지만 1글짜식 짤라서 만듬
// str_split($string, $length) : explode 와 비슷하지만 length 글짜식 짤라서 만듬
echo print_r(str_split($str)); // Array ( [0] => t [1] => e [2] => s [3] => t )
echo print_r(str_split($str, 2)); // Array ( [0] => te [1] => st [2] )
// substr($string, $beginIndex) // 문자열 짜르기 $lendIndex 생략시 끝까지
// substr($string, $beginIndex, $lendIndex)
$str = "helloword";
echo substr($str, 2) // lloword
echo substr($str, 2 , 5) // llowo
echo substr($str, -2) // rd
# 파일처리
/*
읽기-6-R, 쓰기-4-W, 실행-1-X
소유자 || 그룹 || 사용자
*/
$fp = fopen("/date/test.txt" , "r"); // 읽기권한으로 열기
$tdata = fread($fp , 1024); // 파일내용을 1024byte 읽어 $tdate에 넣음
echo $tdata; // 개행불가
echo nl2br($a); // html 개행처리 "\n -> <br>"
fclose($fp); // 파일 닫음
// fopen(파일명, 여는방법);
/* 여는방법
r : 읽기 전용으로 엽니다. 파일 포인터를 제일 앞에 놓습니다.
r+ : 읽기 쓰기가 가능한 상태로 엽니다. 파일 포인터를 제일 앞에 놓습니다.
w : 쓰기 전용으로 엽니다. 파일 포인터를 제일 앞에 놓습니다. 파일크기를 0으로 만듭니다. 파일이 없으면 만듭니다.
w+ : 읽기 쓰기가 가능한 상태로 엽니다. 파일 포인터를 제일 앞에 놓습니다. 파일크기를 0으로 만듭니다. 파일이 없으면 만듭니다.
a : 쓰기 전용으로 엽니다. 파일 포인터를 파일의 끝에 놓습니다. 파일이 없으면 만듭니다.
a+ : 읽기 쓰기가 가능한 상태로 엽니다. 파일 포인터를 파일의 끝에 놓습니다. 파일이 없으면 만듭니다.
*/
// feof(파일변수) : 파일이 끝인지 아닌지를 bool 로 리턴
$fp = fopen("/date/test.txt" , "r"); // 읽기권한으로 열기
for ($i=1 ; ! feof($fp) ; $i++) { // 한줄이 끝나면 i 변수값 증가 후 끝인가 확인 하고 다시 읽어드림
$tdata = fgets($fp); // 파일의 내용을 한줄씩 읽어와 $tdata 라는 변수에 넣는다.
// $tdata = fgets($fp, 1024); // 파일의 내용을 한줄씩 1024byte 이내에서 읽어와 $tdata 라는 변수에 넣는다.
echo $i."번째 줄 : ".$tdata."<br/>"; // $tdata 를 출력한다.
}
fclose($fp); //파일을 닫는다.
// 쓰기
$fp = fopen("/date/test.txt" , "w"); // 쓰기전용으로 열기 파일이 없으면 만듬
$tdata = "이러한 내용이 들어갑니다."; // 작성내용
fwrite($fp, $tdata);
fclose($fp); //파일을 닫는다.
?>
<?php
# 쿠키
/*
쿠키저장
setcookie(변수명, 변수값, 만료시간, 디렉토리, 도메인,보안사용);
변수명 : 저장할 변수의 이름
변수값 : 저장할 변수의 값
만료시간 : 만료되는 시간을 Unix timetamp 값으로 설정 (없으면 브라우저 닫을때까지)
디렉토리 : 쿠키가 적용되는 서버내의 디렉토리 (없으면 /)
도메인 : 쿠키가 적용되는 도메인 명 (없으면 현재 도메인)
보안사용: https프로토콜에 true로 설정할 경우 보안접속 시에만 쿠키 생성이 됩니다
ps) Unix Timestamp 는 1970년 1월 1일 0시 0분 0초를 기준, 그 후로 몇초가 지났는지를 표시
관련함수
time()
mktime()
strtotime()
// 가져오기
$_COOKIE['변수명']
*/
setcookie("myname", "jully", time()+30); // 현재시간+30초 (앞으로 30초간 유지)
$myname = $_COOKIE['myname'];
// $myname == "" 이면 false 근데 이거 null 아닌가?
if($myname)
echo "쿠키저장된 myname:".$myname;
else
echo "쿠키저장된 myname 이 없습니다.";
# 세션
session_start(); // 세션 초기화
$_SESSION["sname"] = "jully";
$_SESSION["sage"] = "21";
//-------- 다음 페이지
session_start(); // 세션 초기화
$s_id = session_id();
echo $_SESSION["sname"]; // jully
echo $_SESSION["sage"]; // 21
unset($_SESSION["sage"]); // 세션삭제
?>