Web Programming Language/PHP

PHP 기본상식

D4tai1 2018. 8. 21.

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) PHPLinux(or UNIX) 환경에 적합하며, C/C++ User의 접근이 용이하고 성능 면에서 가장 우수

 

 

4. form의 속성 

1) action = 값을 받아 전달하며 반드시 필요하고 url을 담고 있다. (form action = "jaehwan.php")

2) method = 데이터를 전달하는 방식 (form method = "post") - getpost 방식이 있다.

-get [ method 생략시 default, data길이는 256byte를 넘길 수 없다, 입력한 값이 url에 그대로 노출되어 보안 취약 ]

-post [ 스트림형태로 전송, data개수나 크기 제약 x, url에 보이지 않아 보안 우수, 그러나 get방식보다 느리다. ]

-request { $name=$_REQUEST['name'] $region=$_REQUEST['region']; $enter=$_REQUEST['enter']; }

-request html에서 넘어오는 getpost 방식 모두 받을 수 있다.

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); //AB와 비교하여 $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) GETPOST로 전송된 변수 값을 저장하는 배열

4) 모든 배열을 통합하는 함수

5) 배열에서 키와 값을 변수와 값으로 추출하는 함수

 

13. 연산자

1) == $A==$B AB가 같은가? 같으면 TRUE를 반환, 다르면 FALSE를 반환한다.

2) = $A = $B AB의 값을 대입한다.

3) != $A != $BAB가 같지 않은가? 같으면 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) 클래스 내에는 attuributemethod가 있다.

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

댓글