-
Step 3-1. Server side language PHP chap 1.2020/<programing> <coding> 2020. 3. 23. 01:23
1. PHP 환경설정
display_errors = Off 를 On 으로,
실제 서비스를 할 때는 Off를 권장.
각종 중요한 데이터들이 유출될 수 있기 때문
opcache = 1 을 0 으로
켜져있으면 파일의 리로드가 바로 적용되지 않는등의 불편한 환경이 발생,
성능을 올리는 설정이기 때문에
실제 서비스를 할 때는 On (1) 을 권장
2. PHP의 원리
여기서 사용하는 web server 는 apache
ex) reload 할 때 마다 현재시간이 바뀌는 동적인 웹페이지를 만들 수 있는 언어.
추가,
bitnami MAMP 프로그램에서
MySQL 서버가 켜지지 않는 문제발생,
서버 이벤트 페이지를 봐도 에러등의 이유를 확인할 수 없었다.
이것저것 눌러보다가
configure를 눌러보니 포트가 3306으로 설정되어있는것을 발견,
원래 설치되어 있던 MySQL workbench 프로그램에서 localhost port를 3360으로 설정해 둔 것이 기억나서
포트넘버를 3360으로 변경한 뒤
database 서버 동작!
포트번호를 3360으로 변경했더니 3306으로 시작되는 이유는 아직 잘 모름. (무책임)
3. PHP 데이터타입
수업에 대한 설명,
PHP는 어떤 형식으로 데이터를 처리하는가.PHP와 숫자
php 출력명령
echo ;
print();
php 에서는 "." 을 이용해서 문자열을 연결한다.
문자갯수를 알 수 있는 함수
strlen();
4. PHP의 변수
변수이름 앞에 $가 붙음
변수선언자 : $
5-1. URL 파라미터
파일명 parameter.php
http://127.0.0.1:8080/parameter.php?name=arbez
위의 url에 name값의 변화면 주면
<?php echo $_GET['name']; ?> //꼭 name 아니어도 됨
위코드에 의해
원하는 값이 출력이 된다.
이것은 나중에 로그인 시 환영메세지를 띄우는 용도 등으로 사용할 수 있겠다.
또 뒤에 &를 붙이면
http://127.0.0.1:8080/parameter.php?name=arbez&country=egnland
여러가지 내용을 출력할 수 있음
5-2. URL 파라미터 활용
<?php
echo $_GET['id'];
?>
이곳에서는 url의 파라미터값을 'id' 로 받아들여서, 동적인 출력을 가능하게 함
위 코드를 이용해서 소제목 h2를 동적으로 바꾸는 역할을 할 수 있게됨
6-1. 함수의 사용
file : function.php
함수를 사용하는 방법에 대한 간단한 설명
nl2br함수,
원본 그대로 줄바꿈 해서 출력해주는 php 함수
그냥 echo는 줄바꿈을 무시하고 출력함.
6-2. 함수의 활용
각 파일의 내용을 html로 불러오기 위함,(파이썬에서도 이렇게 시작했었음)
read file function
>>file_get_contents(//파일경로)
위의 함수는, 우리가 설정해 준 경로에서 파일을 찾아서 내용을 보여주는 함수지만,
보안 등의 문제가 고려되지 않았기 때문에 현실에서 사용하기는 힘들다.
또, 아직은 id값을 하나하나 지정해주어야 하는 불편함이 존재함
7. 제어문 예고
프로그램의 본질인 작업과, 시간의 순서에 대한 개요, 설명
중복을 제거하기 위한 조건과, 반복문
8. 조건문 예고
파이썬과 같은 맥락으로 진행되는 강의.
id값이 없을 때 홈화면을 구성하는 방법에 대한 예고
9. Boolean과 비교연산자
file : comparison.php
어떤 문법으로 쓰이는지만 파악하면 될듯 하다.
var_dump() 함수 : ()내부의 입력값을 출력할 뿐만 아니라, 자료형까지 알려줌. 실 서버에서는 쓸 일이 없지만,
개발하는 동안에는 많이 사용됨
다른언어에서는 못 보던 함수.
bool에 대한 간략한 설명. 빠르게 스킵
10. PHP조건문의 형식
file : conditional.php
if, else, else if 에 대한 설명
php에서는 어떤 문법으로 사용되는지만 파악하면 될 것 같다.
보다보니 여타의 언어랑 문법이 같음
if(){
}
11. PHP조건문의 활용
file : index.php
메인페이지, 즉 index.php 화면은
id값이 없고, 그렇기 때문에
file_get_contents() 함수가 가져올 내용이 없어서 오류 발생, (다른 게시글들은 정상작동중)
id값의 존재여부에 따라 메인내용을 가져올 제어문이 필요
isset() 함수내부의 값이 존재할 때(선언은 되어있을 때) true return
즉 경로에 파일이 있을 때와 없을 때,
값이 존재할 때 선언을 쉽게하는 함수 isset()의 존재를 파악할 수 있음
12. PHP 반복문 예고
file : index.php
반복문에 대한 간단한 설명.
조건문과 마찬가지로 어떤 문법으로 사용되고
어떤 유용한 함수들이 있는지 파악
data 폴더에 있는 파일의 목록을 가져와서
그 목록 하나하나를 li, a 태그를 이용해서 글목록을 생성하는 코드가 필요
즉 게시글을 작성하면 알아서 게시판으로 가져오는 코드가 필요!
>> 컨텐츠를 관리하는 것에만 신경을 집중해서 사용할 수 있다.
13. PHP 반복문 형식
file : loop.php
while에 대한 설명, if 문법에서 확인 했듯 while 또한 다른 언어들과 같을듯?
14. PHP 배열의 형식
file : array.php
php언어에서 변수를 설정하는 기호는 $.
$a = array('a','b','c','d');
count($a); 배열의 크기를 알려줌
array_push($a,'e','f'); 배열에 데이터 입력,
배열중간, 처음, 끝등 원하는 위치에 데이터를 입력, 삭제, 수정등 할 수 있으며,
필요에 의해 검색해서 적용시켜볼 것
15-1. PHP 반복문과 배열의 활용
file : index.php
php get file list in directory 기능을 우선 구현
함수 : array scandir(string 'direct route') >> cli 인터페이스에서 ls 명령어와 비슷한 기능
index.php 라는 파일이 존재하고있는 '현재' 디렉토리 >> ./
부모/상위 디렉토리 >> ../
scan('./data'); 함수를 통해
data 디렉토리의 파일의 이름을 배열에 담아서 가져옴.
위의 내용을 봤을 때
0, 1 번은 ., ..으로 고정되고 2번 배열부터 순서대로 파일명을 가져오는 기능까지 구현
15-2. 반복문과 조건문의 활용 2
file : index.php
파일 디렉토리에 있는 파일들의 값을 가져와서 출력하고, 파일의 갯수가 늘어나거나 줄어들어도 그대로 적용시키기
<?php
$list = scandir('./data');
$a = 2;
while($a<count($list)){
echo "<li><a href=\"index.php?id=$list[$a]\">$list[$a]</a></li>";
$a = $a + 1;
?>
이 코드를 사용하면 ., .. 파일을 무시하고 3번째 파일부터 불러오기 가능
15-3. 반복문과 조건문의 활용 3
file : index.php
., .. 파일을 물리적인 무시가 아닌, 프로그래밍적으로 해결하기
., .. 인지만 확인하면 됨
if문의 != 비교연산자를 이용하면 굳
$a = $a + 1;
이 코드가 if($list[$a] != '.'){
}
if 문 안에 들어가니까 무한로딩이 되는데,
그 이유를 살펴보니
....??
$a = $a + 1;
이 코드가 중복된 if 문에서 빠져나가지 못한다. 정도로 일단 이해를 하고 넘어가면 좋을듯 하다.
'2020 > <programing> <coding>' 카테고리의 다른 글
Step 3-2. Server side language PHP chap 2. (0) 2020.03.28 step 2-2. database 언어 chap 2. (0) 2020.03.21 step 2-2. database 언어 chap 1. (0) 2020.03.15 step 2. (0) 2020.03.13 step 1. (0) 2020.03.13