참고 : 생활코딩
# include 와 require 는 파일을 로드 할 때 사용하는 명령어이다.
차이점은
include가 warning을 일으킨다.
require은 fatal error를 일으킨다.
_once 붙은 것은 파일을 로드 할 때 단 한번만 로드하면 된다는 의미이다.
# namespace 라는 키워드는 동일한 함수의 이름을 하나의 php 애플리케이션 안에 사용할 수 있게 만든다.
# 파일복사
리눅스일 경우 파일을 가지고 있는 디렉토리의 권한을 chmod 753 . 명령어를 실행시켜야만 파일이 복사된다.
원래 /var/www/html디렉토리의 권한은 chmod 755로 되어있다. 하지만 copy()함수를 사용하기 위해서는
디렉토리의 파일허가권(소유자,그룹,그외 사용자)부분에서 그외 사용자에 대해 쓰기(w)와 실행(x) 권한이 필요하다.
다른 방법으로는 chown 명령어로 소유자를 바꿔주면 된다.
1. 소스코드
<?php
$file1 = 'test.txt';
$file2 = 'example.txt';
if(!copy($file1, $file2)){
echo "failed to copy {$file1}...";
}
?>
2. 디렉토리 권한을 주지 않거나 소유자 변경을 안한경우
Warning: copy(example.txt): failed to open stream: Permission denied in /var/www/html/test.php on line 5 failed to copy test.txt...
3. 디렉토리 권한을 주거나 소유자 변경을 한경우 위 경고가 나오지 않으면서 test.txt 라는 파일내용을 복사해 example.txt 라는 파일을 생성시킨다.
# 파일삭제
파일삭제 또한 마찬가지로
디렉토리의 권한 그외 사용자에 대해 쓰기(w)와 실행(x) 권한이 있어야 한다.
다른 방법으로는 chown 명령어로 소유자를 바꿔준다.
1. 소스코드
<?php
unlink('example.txt');
?>
2. 디렉토리 권한을 주지 않거나 소유자 변경을 안한경우
Warning: unlink(example.txt): Permission denied in /var/www/html/test.php on line 2
3. 디렉토리 권한을 주거나 소유자 변경을 한경우 example.txt 라는 파일은 삭제된다.
#파일 읽기 / 파일 쓰기
file_get_contents() 텍스트로 이루어진 파일을 읽어서 문자열을 리턴한다 (내부,외부)
file_put_contents() 쓰기, 화면에는 글자수 리턴한다.
#파일 제어 트러블 슈팅
복사,삭제,읽기,쓰기에 대해 permission denied가 나온다면
chown 명령어를 통해 디렉토리 소유자를 root에서 바꿀 소유자 명으로 지정해주면 된다.
ex) chown apache .
다른 방법으로는 chmod 명령어를 사용해서 그 외 사용자 대해 wx권한을 주면 된다.
ex) chmod 753 .
#디렉토리 제어
getcwd() :현재 디렉토리 출력
chdir('../') :상위 디렉토리 이동
scandir() :파일과 디렉토리를 배열로 리턴, 두번째 인자는 순서
mkdir() :디렉토리 생성 ex)mkdir("1/2/3",0700,true) 디렉토리명,권한설정, recursive인자(true)
#파일 업로드, move_upload_file
참고 :
http://home78.cafe24.com/tc/tag/163
https://opentutorials.org/course/62/5136
#문자열 다루기
#정규표현식
특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어
programming language나 text editor 등에서 문자열의 검색과 치환을 위한 용도로 쓰임
정규표현식에서 사용하는 기호를 Meta문자라고 한다.
참고 :
https://opentutorials.org/course/909/5143
https://opentutorials.org/course/62/5141
http://www.nextree.co.kr/p4327/
연습 :