PHP 기본상식
1. CGI(Common Gateway Interface) 프로그램 종류
1) CGI란 무언가와 게이트웨이 역할을 하는 인터페이스를 말한다.
2) CGI 프로그램 종류에는 Perl, C, Shell Script 등이 있다.
2. CGI 동작절차 = CGI는 동적인 웹 페이지 구성이 가능하게 한다.
1) 사용자가 브라우저에 입력한 내용이 웹 서버로 전달된다.
2) 웹 서버는 입력을 CGI프로그램에 입력한다. 즉 CGI를 호출한다.
3) CGI프로그램은 입력에 따른 처리를 수행하고, 그 결과를 웹 서버에 전달한다.
4) 웹 서버는 사용자의 브라우저, 즉 클라이언트에 CGI의 실행결과를 출력한다.
5) CGI를 사용하는 이유는 웹 서비스가 HTML문서를 보여주는데 그치는 것이 아니라 사용자와의 양방향 소통을 하기 위함이다. 즉 CGI를 사용하여 사용자와 서버 사이의 상호작용(interaction)이 가능한 웹 페이지를 작성하기 위함이다.
3. 웹프로그래밍 언어
1) 처음에는 기존 언어[C, C++, perl, shell script 등]를 사용하였다.
2) 그러나 텍스트위주의 html문서, 특히 태그를 포함한 html문서를 다루기 부적합하였다.
3) 텍스트와 태그로 구성된 html문서를 다루기 위해 ASP, JSP, PHP, CGI[CGI 프로그래밍] 등이 생겨나게 되었다.
4) ASP(Active Script Page), JSP(Jave Script Page), PHP(Hypertext preprocessor) = 스크립트 프로그래밍
5) 보다 발전된 웹 서비스제공을 위하여 ASP.NET, JSP+EJB 등이 개발되어 사용되고 있다.
6) PHP는 Linux(or UNIX) 환경에 적합하며, C/C++ User의 접근이 용이하고 성능 면에서 가장 우수
4. form의 속성
1) action = 값을 받아 전달하며 반드시 필요하고 url을 담고 있다. (form action = "jaehwan.php")
2) method = 데이터를 전달하는 방식 (form method = "post") - get과 post 방식이 있다.
-get [ method 생략시 default, data길이는 256byte를 넘길 수 없다, 입력한 값이 url에 그대로 노출되어 보안 취약 ]
-post [ 스트림형태로 전송, data개수나 크기 제약 x, url에 보이지 않아 보안 우수, 그러나 get방식보다 느리다. ]
-request { $name=$_REQUEST['name'] $region=$_REQUEST['region']; $enter=$_REQUEST['enter']; }
-request 는 html에서 넘어오는 get과 post 방식 모두 받을 수 있다.
3) target = 결과 윈도우(창)를 지정 (form target = "_blank") - _blank, _self, _parent, _top 이 있다.
4) enctype = 보내질 데이터 형식
5) onsubmit = ‘submit’ 버튼이 눌렸을 때 실행하는 이벤트처리기
6) name = 폼을 구분하기 위한 이름
5. PHP언어 특징
[1] PHP는 웹 프로그래밍 언어이다.
1) 소스는 공개되어 있어 자유롭게 다운받아 사용할 수 있다.
2) PHP는 서버에서 동작하는 스크립트 언어이다.
3) PHP는 주로 동적인 웹 페이지를 구성할 때 많이 사용된다.
[2] PHP의 기능과 성능은 계속해서 향상되고 있다.
[3] PHP는 배우고 프로그래밍 하기 쉬운 언어이다.
[4] 전 세계적으로 많은 사람들이 PHP를 사용하고 있다.
[5] PHP는 다양한 데이터베이스와 쉽게 연동된다.
[6] PHP는 다양한 컴퓨터[다양한 운영체제, 고급언어] 상에서 동작한다.
[7] PHP는 다양한 라이브러리를 제공하며 다양한 표준을 지원한다.
6. foreach문의 문법알기(형식)
$arr=array("A", "B", "C", "D", "E", "F", "G");
foreach($arr as $value) [$arr 변수에 있는 것을 as는 하나씩 $value에 저장, 배열 다 돌 때까지 반복]
정해진 배열에 대해서 반복을 한다. 반복마다 현재 값이 $value에 할당된다.
7. PHP문 기본형식
변수의 앞에는 $를 붙여야 한다
모든 문장의 끝에는 세미콜론을 붙여야 한다.
<?PHP ?> 로 시작한다.[PHP생략 가능]
8. 변수의 조건
1) 변수는 ‘$’ 문자로 시작한다.
2) 변수의 이름은 영문 대문자, 소문자, 숫자, ‘_’(언더바)로 이루어진다.
3) ‘$’다음의 첫 문자로 숫자를 사용할 수 없다.
4) PHP에서는 변수 형을 선언(declaration)하지 않고 사용한다.
5) 변수에 할당되는 값에 따라 형이 결정되며, 타입이 변경될 시 형 변환(casting)할 수 있다.
9. 배열 (스칼라배열 = index배열, 연상배열) // array_diff() 함수 - 차집합 // sort() 정렬방식
스칼라배열과 연상배열의 차이
1) $arr=array("A", "B", "C", "D", "E", "F", "G"); -> $arr변수에 ("A", "B", "C", "D", "E", "F", "G"); 배열을 저장한다.
2) $A=array("김","전","떡","술","죽");
$B=array("김", "떡", "죽");
$C=array_diff($A, $B); //A와 B와 비교하여 $A배열에서 $B를 뺀다.
foreach($C as $value) { print $value; } -> 전술[$C변수를 하나씩 $value에 저장하며 배열 끝날 때까지 반복]
3) $A = array("A", "B", "C", "D", "E", "F", "G"); //sort($A); 하면 순서대로 정렬된다.
foreach($A as $value) { print $value; } -> 김떡술전죽 출력
4) 연상배열 $배열명 = array("key"=>값, "key"=>값, ..) =>출력은 무조건 값으로 !!!! 정렬은 다르게
+ array함수의 인자로 키와 값이 쌍을 이루어 나열되며 배열이 생성된다.(주로 foreach와 함께 쓴다.)
$score=array("이영희"=>90,"김철수"=>66,"홍길동"=>84); //배열 방 안에 있는 것이 키 값. (연상배열)
asort($score); //asort는 값을 기준으로 sort 한다.(90, 66, 84를 기준으로) =>66, 84, 90 출력
arsort($score); //arsort는 값을 기준으로 역순으로 sort 한다.(90, 66, 84를 기준으로) =>90, 84, 66 출력
ksort($score); //key값에 의한 sort(이름기준) => 66, 90, 84
krsort($score); //key값에 의한 역순으로 sort(이름기준) => 84, 90, 66
foreach($score as $value) {
print $value."<br>";
}
10. fopen() 의 함수 모드
[1] fget() : 파일에 내용을 읽는 함수
[2] fput() : 파일에 내용을 쓰는 함수[=fwrite( )]
[3] fclose() : fopen() 함수로 파일 사용 후 닫는 함수
$flep = fopen("test.txt","a");
//그리고 $flep에 저장 = 파일에 내용을 쓰겠다. "test.txt"를 쓰고읽는 방식으로 열어서,
if(!$flep) //열리지 않았다면
die("파일을 열 수 없습니다"); //die는 메시지 표시창
fputs($flep,"security"); //fputs는 파일에 내용을 쓰는 함수. $flep에서 연 파일에 "security"을 쓰겠다.
fclose($flep); //$flep 파일을 닫는다.
$flep = fopen("test.txt","r"); //읽기전용으로 파일을 열겠다.
while($l=fgets($flep,1024)) //$flep의 열린 파일을 읽어서 $I에 넣고 다 읽을 때까지 반복하겠다.
print $l."<br>";
11. call by value, call by reference 결과 값 차이비교
1) call by value
function swap($a, $b) {
$temp = $a;
$a = $b;
$b = $temp;
}
$i=3;
$j=4;
print "Before : $i, $j <br>";
swap($i, $j);
print "After : $i, $j <br>";
2) call by reference
function swap(&$a, &$b) {
$temp = $a;
$a = $b;
$b = $temp;
}
$i=3;
$j=4;
print "Before : $i, $j <br>";
swap($i, $j);
print "After : $i, $j <br>";
12. Extract() - 배열을 스칼라로 변환할 때 사용.
1) extract(array_merge($HTTP_GET_VARS, $HTTP_POST_VARS));를 사용하면 $_POST['abc'] 대신 $abc로 사용가능
2) 폼에서 전달받은 변수를 PHP에서 사용할 수 있도록 추출해주는 역할
3) GET과 POST로 전송된 변수 값을 저장하는 배열
4) 모든 배열을 통합하는 함수
5) 배열에서 키와 값을 변수와 값으로 추출하는 함수
13. 연산자
1) == $A==$B 는 A와 B가 같은가? 같으면 TRUE를 반환, 다르면 FALSE를 반환한다.
2) = $A = $B 는 A에 B의 값을 대입한다.
3) != $A != $B는 A와 B가 같지 않은가? 같으면 FALSE를 반환, 다르면 TRUE를 반환한다.
4) .(스트링연산자) print ($num+50)."입니다. “; 와 같이 변수와 문자를 연결하는 연산자이다.
14. 클래스의 의미
class Student
{
var $StudentID;
var $StudentName;
function printStudent($id, $name) {
print "ID : " .$id."<br>";
print "Name : " .$name."<br>";
}
}
$object = new Student;
$object -> StudentID=7777;
$object -> StudentName="d4tai1";
$object -> printStudent($object -> StudentID,$object -> StudentName);
1) 클래스에서 변수를 선언할 때는 var을 붙여야 한다.
2) 클래스 내에는 atturibute와 method가 있다.
3) 객체를 선언할 때에는 클래스 이름 앞에 new를 붙인다.
15. 출력문 echo/print 의 쓰임과 차이
1) Echo() 함수 [ 쉼표로 연계 ]
- 반환 값이 없음
- 여러 개의 매개 변수를 취할 수 있음
- 출력 구문이 print보다 빠름
2) print() 함수 [ 마침표로 연계 ]
- 반환 값이 1 이다.
- 한 개의 매개 변수를 취할 수 있음
- 괄호가 생략 가능
16. 주석
//한 줄 주석
#--한 줄 주석--#
/*여러줄주석*/
html에서는 이것 <!-- 주석 -->도 주석이지만 php에서는 적용받지 않는다.
17. number_format(변수명, 숫자)
[1] ParseInt(변수명)가 정수형으로 변환해주는 것이라면
number_format(변수명, 숫자)는 소수 몇 번째 자리까지 사용하는지 설정해주는 것이다.
[2] $kk = 1234.5678 , number_format($kk, 2) , kk의 변수 값을 소수 두 번째 자리까지. [셋째에서 반올림]
print $kk; -> 1234.57
18. nl2br
- html의 <pre>태그와 비슷하게 입력받은 내용의 enter 값만큼 전부 <br>을 하는 php 함수이다.
19. 데이터베이스
mysql_connect('호스트이름‘, ’사용자명‘, '비밀번호’) ->데이터베이스 접속
ex) mysql_connect('localhost', 'root', 'apmsetup')
mysql_select_db('데이터베이스 이름‘) -> 데이터베이스 선택
ex) mysql_select_db('test')
mysql_query('삽입‘,’삭제‘,’검색‘,추가’) -> SQL 명령 실행
ex) $ros = mysql_query('select * from emplo')
mysql_fetch_rows() ->실행결과를 튜플(행)씩 가져옴
ex) $ros=mysql_query("select * from emplo");
// $ros에 넣는다. = 출력, 모든 것을 emplo 테이블에 있는
while($row=mysql_fetch_row($ros)) //$ros의 행 개수만큼 반복하여 출력
mysql_close(‘연결 시 사용한 변수명’) -> 데이터베이스 접속해제
'Web Programming Language > PHP' 카테고리의 다른 글
도서관 사이트 (0) | 2018.08.21 |
---|---|
jquery[basic] (0) | 2018.08.21 |
class (0) | 2018.08.21 |
fopen, fput, fclose, fgets (0) | 2018.08.21 |
call by value, reference (0) | 2018.08.21 |
댓글