참고 : 생활코딩


# include 와 require 는 파일을 로드 할 때 사용하는 명령어이다.

차이점은 

include가 warning을 일으킨다.

require은 fatal error를 일으킨다.

_once 붙은 것은 파일을 로드 할 때 단 한번만 로드하면 된다는 의미이다.

include

include_once

require

require_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() 쓰기, 화면에는 글자수 리턴한다.

fopen()

fread()

fwrite()


#파일 제어 트러블 슈팅

복사,삭제,읽기,쓰기에 대해 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


#문자열 다루기

strpos()


#정규표현식

특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어

programming language나 text editor 등에서 문자열의 검색과 치환을 위한 용도로 쓰임

정규표현식에서 사용하는 기호를 Meta문자라고 한다.

참고 :

https://opentutorials.org/course/909/5143

https://opentutorials.org/course/62/5141

http://www.nextree.co.kr/p4327/

연습 :

http://regexr.com

'개발 > php' 카테고리의 다른 글

php - 1  (0) 2017.04.05

참고 : 생활코딩


# 문자열을 표현할 때에는 '' or "" 사용

차이점은 

'' 경우 문자열로 인식한다.

"" 경우 문자열에서 치환할 곳을 찾아내어 값을 넣는다.

$d 부분에 $a를 보면 중괄호{} 안에 있지만 $e 부분처럼 사용 안 할 수 있다.


1. 소스코드

<?php 

$a='a';

$b='b{$a}';

$c='c$a';

$d="d{$a}";

$e="e$a";

echo $a. "<br />";

echo $b. "<br />";

echo $c. "<br />";

echo $d. "<br />";

echo $e. "<br />";

?>


2. 출력화면


# 결합시킬 때에는 '.' 을 사용


1. 소스코드

<?php 

$a="abc";

$b="def";

echo "123"."456". "<br />";

echo "Hello"."World". "<br />";

echo $a.$b. "<br />";

?>


2. 출력화면



# echo 와 print

차이점

echo는 하나 이상의 문자열을 출력하며 리턴값 없음.

print는 하나의 입력값을 받으며 '1'이라는 값을 리턴, 괄호()를 넣어서 사용하거나 없이 사용가능함.


1. 소스코드

<?php 

echo "abc","def". "<br />";

echo "abcdef". "<br />";

print "abcdef". "<br />";

print("abcdef"). "<br />";

var_dump(print "abcdef". "<br />");

?>


2.출력화면


# var_dump(), var_export(), print_r() 함수

var_dump(), var_export(), print_r() : 배열이나 객체를 문자열로 출력할때 사용, 디버깅용 함수로 적합.

참고 :

https://chongmoa.com:45183/php/5130


1.소스코드

<?php  

$var = array(1,2,3,4,5);

var_dump($var);

echo "<br />";

var_export($var);

echo "<br />";

print_r($var);

?>


2.출력화면



# define() 함수를 사용해서 상수를 정의할 수 있다.

상수가 한번 정의되면, 변경하거나 해제 할 수 없다.


1.소스코드

<?php  

define("title","Hello world!");

echo title;

?>


2.출력화면


# const 키워드도 상수를 정의 할 수 있다.

PHP5.3.0 부터 사용 가능

함수, 루프, if구문, try / catch 블록 안에서는 선언 불가.

컴파일 시에 정의되기 때문에 최상위 영역에서 선언.


1. 소스코드

<?php  

const title = "Hello world!";

echo title;

?>


2. 출력화면


# gettype() 함수와 settype() 함수

gettype() 함수는 데이터타입을 보여준다.

settype() 함수는 데이터타입을 바꿀 수 있다.


1. 소스코드

<?php  

$var = 1;

echo gettype($var). "<br />";

settype($var,'string');

echo gettype($var). "<br />";

?>


2. 출력화면


# 변수의 이름조차도 가변적으로 바꿀 수 있다.

 

1. 소스코드

<?php  

$stage = 'level1';

$$stage = 'level2';

echo $level1;

?>


2. 출력화면


# '=='와 '==='의 비교

차이점

==(Equal) : 서로 같다(단순 데이터 비교)

===(Identical) :서로 같고, 자료형도 같다 (단순 데이터 비교, 자료형까지 비교하여 엄격히 비교)

'===' 비교연산자를 사용하는게 보안상 좋다.

참고 :

http://vucket.com/index.php/topic/view/51


1. 소스코드

<?php 

$a = '1';

$b = 1;

if ($a == $b) {

     echo "true". "<br />";

} else {

     echo "false". "<br />";

}

if ($a === $b) {

  echo "true". "<br />";

} else {

  echo "false". "<br />";

}

?>


2. 출력화면



# 0외에 값이 없는 배열, 빈문자열("",''), NULL, 문자 0 등도 0으로 간주 된다.

empty() : 변수가 비어있는지 확인 (값이있으면 FALSE)

is_null() : 변수가 NULL인지를 확인 (NULL이 아니면 FALSE)

isset() : 변수에 값이 존재하고, NULL 이 아닌지 확인(NULL일 경우 FALSE)


1. 소스코드

<?php  

$var = 1;

var_dump(empty($var));

var_dump(is_null($var));

var_dump(isset($var));

?>


2. 출력화면


'개발 > php' 카테고리의 다른 글

php - 2  (0) 2017.04.06

+ Recent posts