처음부터 차근차근

PHP 기본 정리 2 본문

프로그래밍/PHP

PHP 기본 정리 2

_soyoung 2021. 10. 4. 13:57
반응형

 

함수
<?php
    function sub($num1, $num2) {
        return $num1 - $num2;
    }
?>

php에서 함수는 반환 형식과 매개변수의 자료형을 명시하지 않는다.

그리고, 하나의 함수는 하나의 기능만을 담는다.

함수 정의는 보통 코드의 맨 위에다 한다.

 

php에서 함수는 한 번 만들어지면 다시 재정의할 수 없다.

 

 

 

정보 시스템의 4가지 필수 기능

 

C : Create

R : Read

U : Update

D : Delete

 

 

 

 

GET방식과 POST방식

 

GET 방식이란, url에 url파라미터가 적혀 있어서 사용자에게도 보이는 방식이다.

POST 방식이란, url에 url파라미터가 안보이는 방식이다.

 

그래서 POST방식이 GET방식에 비해 보안면에서 더 좋다.

GET방식은 웹 애플리케이션의 카테고리에 적합하고,

POST방식은 서버로 어떠한 정보를 전송해야 할 때 즉, 사용자가 내용을 작성하고 서버에 올릴 때가 적합하다. 

 

GET 방식은 사용자가 무엇을 입력했는지 어떤 것을 했는지 다 나오기 때문에 보안이 떨어지는 것은 물론이고, 단지 url을 한 번 더 검색한 것 만으로 서비스가 한 번 더 실행되는 등 웹 사용에 불편함이 생길 가능성이 높다. 

그렇기 때문에 보안이 중요하거나 서버에 전송해서 한 번 처리해야하는 것은 POST 방식을 사용해서 처리한다. 

 

 

 

 

form 태그
<form action="보낼경로" method="GET or POST">
    <input type="text" name="contents">
    <input type="submit">
</form>

사용자가 입력한 정보를 서버로 전송하는 태그이다.

사용자가 text 내용을 입력하고 submit를 클릭하면 내용들이 form 태그에 적혀있는 경로로 이동한다(서버에 제출함).

보내진 곳에서는 text의 name인 contents를 통해서 text 값에 접근 할 수 있다.

method를 생략하면 자동으로 GET 방식이 사용된다.

 

POST 방식으로 보내진 내용은 크롬에서 f12를 누르고 Network > Header > From Data에서 볼 수 있다.

 

 

 

 

redirection

 

redirection이란, 사용자를 다른 웹 페이지로 이동시키는 것을 의미한다.

<?php
    header("Location: 파일경로");
?>

사용자를 '파일경로'로 보내는 것이다.

ex) header("Location: /page.php?title=" . $_POST['title']);

 

 

 

 

<? ?> vs <?php ?>
<?
?>

<?php
?>

위의 두 코드 모두 php코드의 시작과 끝을 알리는 태그이다.

이 둘 중에서 뭘 쓸까에 대하여 고민을 했는데,

<? ?>보다는 <?php ?>를 쓰는게 더 낫다.

 

<? ?>로 쓴 코드는 short_open_tag를 활성화 하지 않은 서버에서 돌아가지 않는다.

그러므로 모든 환경에 호환하기 위해서 귀찮더라도 <?php ?>로 작성하는게 더 좋다.

 

 

 

 

출력 줄인 코드
<?=$a?>

위의 코드는 <?php echo $a; ?>를 줄인 코드다. 

 

<주의 : 잘못된 예>

<?php=$a?>
<?php=$a;?>

이렇게 쓰면 안된다.

 

+ 그리고 php코드를 한 줄로 쓸 때 php옆을 꼭 띄어쓰기를 해줘야한다.

<잘못된 예>

<?php$a; ?>

 

 

 

 

file명 변경
<?php
    rename("파일경로(바꿀 파일)", "파일경로(새로운 이름)");
?>

첫 번째 매개변수로 바꿀 파일의 경로를 적어주고, 두 번째 매개변수로 새 이름을 포함한 파일경로를 적어준다.

 

ex) rename("./data/<?php $_POST['old_ranguage']; ?>", "./data/<?php $_POST['ranguage']?>");

 

 

 

 

파일 삭제하기
<?php
    unlink("파일경로");
?>

파일경로에 있는 파일을 삭제하는 함수이다.

 

 

 

 

Delete 구현

 

글이나 파일을 삭제하는 기능을 구현 할때는 POST 방식을 사용해야 한다.

왜냐하면 delete를 GET방식으로 구현했을 때 문제가 생긴다.

예를 들어서 사용자가 delete에 마우스를 갖다 대면 밑에 delete url이 뜰 텐데 그 url을 그대로 복사해서 sns에다 올린다고 가정해보자.

그럼 어떤 사람이 sns에다 올린 그 url을 클릭하면 클릭하기만 해도 그 정보가 삭제되게 된다.

다른 문제점도 많은데 대체로 이러한 문제를 방지하기 위해서 delete는 안전을 위해 POST 방식으로 구현해야 한다.

 

 

 

 

Refactoring

 

re(다시) + factoring(공장에 재입고 시킨다)

결과의 변경 없이 코드의 구조를 재조정하는 것을 refactoring이라고 한다.

좀 더 유지보수하기 편하게, 중복된 코드를 제거하는 등의 일을 하는 과정이다.

 

좋은 코드를 만드는 방법은, 중복을 제거하는 것이다!

 

 

 

 

library

 

나중에 재사용 할만한(중복) 코드나 로직을 잘 정리해둔 것이다.

중복되는 코드들을 하나의 파일로 만들어서 lib 디렉토리 아래다 저장해두고 필요할 때마다 꺼내서 사용한다.

 

* 기능이 아닌 화면에 보여지는 것과 관련된 코드는 lib 밑에다 두지 않고 따로 view같은 파일을 만들어서 그 밑에다 저장하고 사용한다.

 

 

 

 

파일을 가져다 쓰는 방법
<?php
    require("파일경로");
    require_once("파일경로");
?>

require : 필요하다

즉, 이 파일이 필요하다라는 뜻이다.

이 코드를 쓰면 파일 내용을 가져와서 그대로 사용할 수 있다.

 

ex) require("./lib/print.php");

 

require_once()는 require()메서드가 중복되서 정의될 때 php에서 알아서 중복되는 정의는 무시해 주는 것이다.

 

 

 

 

API와 UI

 

UI란 User Interface의 약자로 사용자가 볼 수 있는 웹 애플리케이션의 모든 것이라고 할 수 있다. 

예를 들어서 form, 버튼, 제목 등이 있다.

 

API란 Application Programming Interface의 약자로 웹 애플리케이션을 만들 때 기반이 되고 도움이 되는 기능들 즉, 미리 언어 측에서 미리 만들어놓은 기능들을 의미한다.

예를 들어서 <a>태그, 여러가지 php 내장 함수, 클래스 등이 있다.

 

 

 

 

 

 

 

출처 : 'WEB2-PHP' - 생활코딩 변형 및 요약

반응형

'프로그래밍 > PHP' 카테고리의 다른 글

date time을 오전 00:00, 오후 00:00로 나타내기  (0) 2022.06.06
date를 '~일 전', '~ 분 전' 으로 나타내는 방법  (0) 2022.02.19
PHP 보안  (0) 2021.10.05
PHP 기본 정리  (0) 2021.10.03
PHP의 원리  (0) 2021.10.02
Comments