2015년 9월 30일 수요일
정규표현식
- \(.+\)
괄호를 포함하여 괄호에 싸여있는 모든 값 검색 됨
-------------------------------------------------------------------------
- ^+검색어
소스 상 한 줄의 가장 처음 나타나는 검색어를 검색
who is who 라면 앞의 who만 검색 됨
-------------------------------------------------------------------------
- 검색어+$
소스 상 한 줄의 가장 마지막 나타나는 검색어를 검색
who is who 라면 뒤의 who만 검색 됨
※ 특수문자 $ 를 찾을때
$12$\-\$25$
^\$를 하면 $가 문자처리되어 맨 앞의 $가 찾아짐
-------------------------------------------------------------------------
- .
모든 문자를 의미
...... 6개의 점은 6개의 글자를 가진 문자를 의미한다.
-------------------------------------------------------------------------
- [검색어]
[ ] 한 세트는 한 글자 의미
How Hone을 [ho]. 으로 검색하면 뒤에 .(점) 때문에 두글자를 찾되,
첫글자는 h또는o가 들어간 글자 중에서 찾게 된다.
-------------------------------------------------------------------------
- [검색어-검색어]
[c-k] c 부터 k 까지를 검색.
[C-Ka-d2-6] 등의 방법도..
-------------------------------------------------------------------------
-[^검색어]
[ ]내부의 ^(캐럿)은 부정의 의미
[c-k] c 부터 k 까지를 제외하고 검색.
-------------------------------------------------------------------------
- (on|ues|rida)
Monday Tuesday Friday
(Mon|Tues|Fri)day 하면 세 단어 전체가 모두 검색 됨
..(nd|esd|id)ay 해도 모두 검색됨, 앞에 점 두개는 두글자, 중간은 (), 끝은 ay
-------------------------------------------------------------------------
- 수량자(Quantifiers) *, +, ?
a*b 는 b 앞에 a라는 문자가 있든 없는 다 검색한다.
a+b 는 b 앞에 a라는 문자가 1개 이상이면 있는 부분부터 다 검색한다.
a?b 는 b 앞에 a라는 문자가 없거나 1개이면 검색한다.
.* 는 모든 텍스트
-A*- 는 -(데시)앞에 -와A가 있든 없는 모두 검색
\*+ 는 + 앞의 것이 하나라도 있어야 검색
[^]+ 는 공백이 하나라도 있는 것을 검색
.{5} 는 어떤 것이든 5글자인 것 검색
[els]{1,3} 는 검색하려는 것이 1개 이상 3개 이하인 경우 검색
[a-z]{3,} 는 3개 문자 이상인 겨우 검색( 상한선이 없음)
AB*A 는 AB{0,}A와 같은 의미를 지닌다.
AB+A 는 AB{1,}A와 같은 의미를 지닌다.
AB?A 는 AB{0,1}A와 같은 의미를 지닌다.
r.* 는 r문자 뒤에 모든 문자를 잡는다.
수량자뒤에 바로 ? 가 올 경우 의미가 달라진다.
r.*? 의 경우
?가 *의 효력을 0~여러개 에서 0으로 바꿔버린다.
결국 r만 검색되고 .은 무용지물이 됨
r.+? 의 경우
?가 *의 효력을 1~여러개 에서 1으로 바꿔버린다.
결국 r과 뒤에 붙는 문자 하나만 검색됨
r.+? 의 경우
?가 *의 효력을 1~여러개 에서 1으로 바꿔버린다.
결국 r과 뒤에 붙는 문자 하나만 검색됨
-------------------------------------------------------------------------
- \w word를 의미( 알파벳 과 숫자 그리고 _(언더라인) )
공백은 제외된다.
/w* 모든 문자 검색 ( = [A-z0-9] )
[a-z]\w*
\w{5} 문자 5개 검색
※ 대문자W는 문자가 아닌것 검색
-------------------------------------------------------------------------
- /d 는 0~9까지의 수 의미
※ 대문자D는 숫자가 아닌것 검색
-------------------------------------------------------------------------
- /b. 바운더리
\b\w 단어의 시작 스펠링이 강조
\w\b 단어의 끝 스펠링이 강조
\b\w+\b 1글자 이상인 단어를 강조
cat concat 에서
\bcat 이면 앞의 cat만 검색
cat\b 이면 두 단어의 cat 모두 검색
-------------------------------------------------------------------------
- \A...
문단에서 시작단어 중 3글자 단어 검색
-------------------------------------------------------------------------
- \Z...
문단에서 끝단어 중 3글자 단어 검색
-------------------------------------------------------------------------
- \w+(?=X)
X를 뺀 앞부분을 선택
-------------------------------------------------------------------------
-------------------------------------------------------------------------
2015년 9월 17일 목요일
python
Python
=========================================
파일 찾기
import glob
files = glob.glob("*.exe")
print files
=========================================
현재 디렉토리 알기
import os
print os.getcwd()
변경하기
os.chdir("C:/WINDOWS")
print os.getcwd()
경로내 모든 디렉토리 출력
print os.listdir('.')
=========================================
import os,re
루트 디렉토리를 중심으로 하위 폴더 중에서 파일 찾기
os.walk - > 리턴 tuple 형식 ( 경로, 폴더들, 파일들 )
모든 폴더 탐색
for t in os.walk('Root'):
print t
특정 파일 찾기
def findfile(filepattern, base = '.'):
regex = re.compile(filepattern)
matches = []
for root, dirs, files in os.walk(base):
for f in files:
if regex.match(f):
matches.append(root + '/' + f)
print(matches)
remove(path)
파일 경로를 제거한다.
path가 디렉토리이면, OSError가 일어난다; (디렉토리를 제거하려면 rmdir()을 사용하라).
rename(src, dst)
src 파일이나 디렉토리 dst로 이름을 바꾼다.
dst가 디렉토리이면, OSError가 일어난다.
=========================================
import shutil
copy(src, dst)
src 파일을 dst 파일이나 디렉토리에 복사한다. dst가 디렉토리이면, 지정된 디렉토리에 src와 바탕이름이 같은 파일이 생성된다(즉 오버라이트된다). 허가 비트도 복사된다. src와 dst는 문자열로 주어진 경로 이름이다.
move(src, dst)
재귀적으로 파일이나 디렉토리를 다른 곳으로 이동시킨다.
목적지가 현재 파일시스템이면, 그냥 src의 이름을 바꾸어라. 그렇지 않으면, src를 dst에 복사하고 src를 삭제하라.
=========================================
import os.path as p
import glob
for item in glob.glob('*')
if p.isfile(item): print item, ' is a file'
elif p.isdir(item): print item, ' is a directory'
else: print item, ' is of unknown type'
p.isfile(item)
p.isdir(item)
=========================================
import time as t
t.localtime( )
=========================================
=========================================
=========================================
=========================================
파일 찾기
import glob
files = glob.glob("*.exe")
print files
=========================================
현재 디렉토리 알기
import os
print os.getcwd()
변경하기
os.chdir("C:/WINDOWS")
print os.getcwd()
경로내 모든 디렉토리 출력
print os.listdir('.')
=========================================
import os,re
루트 디렉토리를 중심으로 하위 폴더 중에서 파일 찾기
os.walk - > 리턴 tuple 형식 ( 경로, 폴더들, 파일들 )
for t in os.walk('Root'):
print t
특정 파일 찾기
def findfile(filepattern, base = '.'):
regex = re.compile(filepattern)
matches = []
for root, dirs, files in os.walk(base):
for f in files:
if regex.match(f):
matches.append(root + '/' + f)
print(matches)
remove(path)
파일 경로를 제거한다.
path가 디렉토리이면, OSError가 일어난다; (디렉토리를 제거하려면 rmdir()을 사용하라).
rename(src, dst)
src 파일이나 디렉토리 dst로 이름을 바꾼다.
dst가 디렉토리이면, OSError가 일어난다.
=========================================
import shutil
copy(src, dst)
src 파일을 dst 파일이나 디렉토리에 복사한다. dst가 디렉토리이면, 지정된 디렉토리에 src와 바탕이름이 같은 파일이 생성된다(즉 오버라이트된다). 허가 비트도 복사된다. src와 dst는 문자열로 주어진 경로 이름이다.
move(src, dst)
재귀적으로 파일이나 디렉토리를 다른 곳으로 이동시킨다.
목적지가 현재 파일시스템이면, 그냥 src의 이름을 바꾸어라. 그렇지 않으면, src를 dst에 복사하고 src를 삭제하라.
=========================================
import os.path as p
import glob
for item in glob.glob('*')
if p.isfile(item): print item, ' is a file'
elif p.isdir(item): print item, ' is a directory'
else: print item, ' is of unknown type'
p.isfile(item)
p.isdir(item)
=========================================
import time as t
t.localtime( )
=========================================
=========================================
=========================================
JavaScript
JS 는 함수다!
--------------------------------------------------------------
- 역슬러시 \
: 뒤에 나온 것을 문자로 처리한다.
:: \+' (= 역슬래시+') 하면 ' 을 문자로 처리한다.
--------------------------------------------------------------
- Math
:: Math.random(); -> 0.11323 같은 1 이하의 랜덤한 수 제공
--------------------------------------------------------------
- document
현재 html 문서 자체를 의미
document.getElementById("아이디") 하면 해당 아이디의 html 객체 튀어나옴
document.write("내용")의 경우 전체 문서를 해당 내용으로 다시 쓴다
DOM, BOM 개념에 대한 서술이 필요
--------------------------------------------------------------
JQuery, ajax 서술이 필요
--------------------------------------------------------------
-http request
form 태그 전송
<form enctype="multipart/form-data" action="1.php" method="POST">
<input type="hidden" name="maxFileSize" value="30000"/>
<input type="file" name="userFile"/>
<input type="submit" value="upload">
</form>
enctype : encoding type, multipart/form-data 로 해야 한다. 심오한 이유는 알면 쓰겠음
action="URL", 전송할 목표 웹서버 페이지의 URL
method="POST", 파일 전송의 경우라서인지 POST 방식을 선택 ( GET no no )
type="hidden" 항목에서 "maxFileSize"은 웹서버측 php파일에서 $_POST["maxFileSize"]로
받아서 사용한다.
파일의 경우도 $_POST["userFile"] 으로 사용할 수 있지 않을까? 하는 생각은 버리자
파일의 경우 $FILES 라는 약속된 변수에 저장되어 있다.
$FILES["userFile"] 으로 배열화 되어있는 파일의 정보에 접근할 수 있다.
$FILES["userFile"]["name"] //-> 파일 이름. 확장자
$FILES["userFile"]["type"] //-> image 인지 text 인지 / 형식?(png , plain 등 )
$FILES["userFile"]["tmp_name"] //->템프 경로, 파일을 목표 경로로 옮기기 전 잠시있는 곳
$FILES["userFile"]["error"] //-> 전송중? 에러 사항?
$FILES["userFile"]["size"] //-> 파일 용량
이후에 일어나는 일은 php 항목에서 "$FILES"를 검색해서 찾아볼 수 있다
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
- 참고사항
<script> </script> 사이가 아니라도 자바 스크립트를 사용하 수 있다.
input tag의 onclick 부분
<input type="button" value="white" onclick="alert('hello world')"/>
input tag의 onfocus, onblur 부분
<input type="text" onfocus="alert('focus')" onblur="alert('blur')"/>
--------------------------------------------------------------
--------------------------------------------------------------
- 역슬러시 \
: 뒤에 나온 것을 문자로 처리한다.
:: \+' (= 역슬래시+') 하면 ' 을 문자로 처리한다.
--------------------------------------------------------------
- Math
:: Math.random(); -> 0.11323 같은 1 이하의 랜덤한 수 제공
--------------------------------------------------------------
- document
현재 html 문서 자체를 의미
document.getElementById("아이디") 하면 해당 아이디의 html 객체 튀어나옴
document.write("내용")의 경우 전체 문서를 해당 내용으로 다시 쓴다
DOM, BOM 개념에 대한 서술이 필요
--------------------------------------------------------------
JQuery, ajax 서술이 필요
--------------------------------------------------------------
-http request
form 태그 전송
<form enctype="multipart/form-data" action="1.php" method="POST">
<input type="hidden" name="maxFileSize" value="30000"/>
<input type="file" name="userFile"/>
<input type="submit" value="upload">
</form>
enctype : encoding type, multipart/form-data 로 해야 한다. 심오한 이유는 알면 쓰겠음
action="URL", 전송할 목표 웹서버 페이지의 URL
method="POST", 파일 전송의 경우라서인지 POST 방식을 선택 ( GET no no )
type="hidden" 항목에서 "maxFileSize"은 웹서버측 php파일에서 $_POST["maxFileSize"]로
받아서 사용한다.
파일의 경우도 $_POST["userFile"] 으로 사용할 수 있지 않을까? 하는 생각은 버리자
파일의 경우 $FILES 라는 약속된 변수에 저장되어 있다.
$FILES["userFile"] 으로 배열화 되어있는 파일의 정보에 접근할 수 있다.
$FILES["userFile"]["name"] //-> 파일 이름. 확장자
$FILES["userFile"]["type"] //-> image 인지 text 인지 / 형식?(png , plain 등 )
$FILES["userFile"]["tmp_name"] //->템프 경로, 파일을 목표 경로로 옮기기 전 잠시있는 곳
$FILES["userFile"]["error"] //-> 전송중? 에러 사항?
$FILES["userFile"]["size"] //-> 파일 용량
이후에 일어나는 일은 php 항목에서 "$FILES"를 검색해서 찾아볼 수 있다
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
- 참고사항
<script> </script> 사이가 아니라도 자바 스크립트를 사용하 수 있다.
input tag의 onclick 부분
<input type="button" value="white" onclick="alert('hello world')"/>
input tag의 onfocus, onblur 부분
<input type="text" onfocus="alert('focus')" onblur="alert('blur')"/>
--------------------------------------------------------------
2015년 6월 30일 화요일
mysql
mysql monitor 명령어
접속 부터
1) 윈도우키+R -> cmd
2) cd C:\Bitnami\wampstack-5.5.26-0\mysql\bin (비트나미로 부터 bin 폴더까지)
mysql -hlocalhost -uroot -p 엔터, 패스워드 넣으라 하면 DB 비번 입력
db 존재 확인
3) show databases; 명령으로 현재 존재하는 데이터 베이스 확인
db생성
4) CREATE DATABASE dbName CHARACTER SET utf8 COLLATE utf8_general_ci;
db삭제
5) 잘못 만들었으면 삭제 - DROP DATABASE dbName;
db사용
6) USE dbName;
--------------------------------------------------------------------------------
테이블 생성
1) CREATE TABLE `topic` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`description` text NOT NULL,
`author` varchar(30) NOT NULL,
`created` datetime NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
※ `topic`, `id` 등 에 쓰인 `은 물결표시 밑의 그레이브엑센트 이다.
일반 홑따움표와 다르다.
※ int(11) 11의 의미는 출력될때 11자리까지만 출력된다는 뜻
만들어진 테이블 확인
2) show tables;
3) 테이블에 행 추가하면서 데이터 삽입 - INSERT INTO `topic`
(`id`, `title`, `description`, `author`, `created`)
VALUES(
'title_aaaa',
'desctiption_aaaa',
'author_aaaa',
'2015-06-30 19:05:00'
);
id는 하나 하나 추가 될때만다 1, 2, 3 이런식으로 증가되서 자동 기입 된다.
auto_increment 속성 때문
테이블의 상세 모양세 보기
4) DESC tableName;
--------------------------------------------------------------------------------
내용 변경 - 추가
1) INSERT INTO tableName
(colName1, colName2, colName3) VALUES (`값1`, `값2`, `값3` );
내용 변경 - 변경
2) UPDATE tableName SET colName1 = '값', colName2 = '값'
WHERE colName3= '값';
내용 변경 - 삭제
3) DELETE FROM tableName WHERE colName = '값'
내용 선택
4) SELECT colName1, colName2 FROM tableName;
조건
SELECT colName1, colName2 FROM tableName
WHERE colName3= 값 AND(OR) colName4= 값;
정렬
SELECT colName1, colName2 FROM tableName ORDER BY colName3 DESC(ASC);
Auto Increment 초기화, 모든 테이블 내용이 삭제 되야 초기화 됨
5) ALTER TABLE tableName AUTO_INCREMENT = 1;
--------------------------------------------------------------------------------
테이블 변경 - 컬럼 추가
1)ALTER TABLE tablename ADD name varchar(10);
ex) alter table [테이블명] add [컬럼명] varchar(100) not null default '0';
ALTER TABLE tablename ADD newColName varchar(10) AFTER existColName;
/* 컬럼 삭제 */
ALTER TABLE tablename DROP colname;
/* 컬럼명 변경 및 타입 변경 */
ALTER TABLE tablename CHANGE colname newcolname INT NOT NULL AUTO_INCREMENT;
CHANGE는 컬럼 속성뿐아니라 이름도 바꿔준다.
/* 컬럼 타입 수정 */
alter table [테이블명] modify [컬럼명] varchar(14);
/* 테이블명 수정 */
ALTER TABLE tablename RENAME newtablename;
/* 테이블 삭제 */
drop table [테이블명];
--------------------------------------------------------------------------------
접속 부터
1) 윈도우키+R -> cmd
2) cd C:\Bitnami\wampstack-5.5.26-0\mysql\bin (비트나미로 부터 bin 폴더까지)
mysql -hlocalhost -uroot -p 엔터, 패스워드 넣으라 하면 DB 비번 입력
db 존재 확인
3) show databases; 명령으로 현재 존재하는 데이터 베이스 확인
db생성
4) CREATE DATABASE dbName CHARACTER SET utf8 COLLATE utf8_general_ci;
db삭제
5) 잘못 만들었으면 삭제 - DROP DATABASE dbName;
db사용
6) USE dbName;
--------------------------------------------------------------------------------
테이블 생성
1) CREATE TABLE `topic` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`description` text NOT NULL,
`author` varchar(30) NOT NULL,
`created` datetime NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
※ `topic`, `id` 등 에 쓰인 `은 물결표시 밑의 그레이브엑센트 이다.
일반 홑따움표와 다르다.
※ int(11) 11의 의미는 출력될때 11자리까지만 출력된다는 뜻
만들어진 테이블 확인
2) show tables;
3) 테이블에 행 추가하면서 데이터 삽입 - INSERT INTO `topic`
(`id`, `title`, `description`, `author`, `created`)
VALUES(
'title_aaaa',
'desctiption_aaaa',
'author_aaaa',
'2015-06-30 19:05:00'
);
id는 하나 하나 추가 될때만다 1, 2, 3 이런식으로 증가되서 자동 기입 된다.
auto_increment 속성 때문
테이블의 상세 모양세 보기
4) DESC tableName;
--------------------------------------------------------------------------------
내용 변경 - 추가
1) INSERT INTO tableName
(colName1, colName2, colName3) VALUES (`값1`, `값2`, `값3` );
내용 변경 - 변경
2) UPDATE tableName SET colName1 = '값', colName2 = '값'
WHERE colName3= '값';
내용 변경 - 삭제
3) DELETE FROM tableName WHERE colName = '값'
내용 선택
4) SELECT colName1, colName2 FROM tableName;
조건
SELECT colName1, colName2 FROM tableName
WHERE colName3= 값 AND(OR) colName4= 값;
정렬
SELECT colName1, colName2 FROM tableName ORDER BY colName3 DESC(ASC);
Auto Increment 초기화, 모든 테이블 내용이 삭제 되야 초기화 됨
5) ALTER TABLE tableName AUTO_INCREMENT = 1;
--------------------------------------------------------------------------------
테이블 변경 - 컬럼 추가
1)ALTER TABLE tablename ADD name varchar(10);
ex) alter table [테이블명] add [컬럼명] varchar(100) not null default '0';
ALTER TABLE tablename ADD newColName varchar(10) AFTER existColName;
/* 컬럼 삭제 */
ALTER TABLE tablename DROP colname;
/* 컬럼명 변경 및 타입 변경 */
ALTER TABLE tablename CHANGE colname newcolname INT NOT NULL AUTO_INCREMENT;
CHANGE는 컬럼 속성뿐아니라 이름도 바꿔준다.
/* 컬럼 타입 수정 */
alter table [테이블명] modify [컬럼명] varchar(14);
/* 테이블명 수정 */
ALTER TABLE tablename RENAME newtablename;
/* 테이블 삭제 */
drop table [테이블명];
--------------------------------------------------------------------------------
2015년 6월 28일 일요일
php
php
php로 작성된 부분은 web server에 의해 php interpretor에 위임되어 행해지는 부분이고
java script로 작성된 부분은 web browser에 의해 행해지는 부분이다.
web browser 페이지의 소스를 보면 js는 작성한 그대로 보이지만
php코드 부분은 결과만을 확인할 수 있다. 이유가 바로 위에서 언급한 특징 때문이다.
<?php
php코드
?>
※<?php .. 에서 ?와 p 사이에 띄어쓰기 하면 안됨
<script>
java script 코드
</script>
---------------------------------------------------------------------
- echo
echo "Hello world"; //문자의 경우" "로 감싸줘야 한다.
echo 10000;
echo "10000"+"10000"; //20000 출력
echo "H"+"W";//0 출력
echo "10" . "10";//1010 출력 // . 은 두 문자열 연결
---------------------------------------------------------------------
- $변수명
: 앞에 $를 붙인다.
---------------------------------------------------------------------
- 배열
$list = array("1","2","3"); // php , ※ var list = new Array("1","2","3"); // java script
- 배열의 크기
$size = count($list); // php , ※ var size = list.length; // js
---------------------------------------------------------------------
- 함수
function FuncPHP($input)
{
return $input + 1;
}
- 함수 호출
FuncPHP(3);
---------------------------------------------------------------------
-디렉토리(경로) 관리
getcwd(); // 현재 디렉토리 구함
chdir("../"); // 경로 변경, ("../" 은 부모 경로 = 한 계층 위 의미 )
chdir("폴더명"); // 해당 경로로 이동
$dir = "./"; // = current directory
$files1 = scandir($dir);//경로내 파일들 순차 정렬
$files2 = scandir($dir, 1);//경로내 파일들 역순 정렬
만들기
mkdir("1/2/3/4", 0700, true);
//1이라는 폴더 밑에 2 밑에 3 밑에 4라는 폴더가 없으면 만든다. 있으면 warning
//0700: 권한 설정, 오너 그룹 아더, 자세한건 추후 기입
//true: 1/2/3 까지의 경로가 없다면 1,2,3을 만들어 준다는 설정 설정
---------------------------------------------------------------------
-파일명 보안
basename = 이하 b 로 표시
b("/etc/sudoers.d", ".d"); // -> "sudoers"
b("/etc/sudoers.d"); // -> "sudoers.d"
b("/etc/pass"); // -> "pass"
b("/etc/"); // -> "etc"
b("."); // -> "."
b("/"); // -> ""
//이렇게 파일명만을 추려내는 기능 이스케이핑 같은 목적으로 사용
---------------------------------------------------------------------
-ini 설정 runtime 변경
ini_set("display_error", "1");
//
---------------------------------------------------------------------
-이미지 파일 전송 받아 출력하기
form 태그로 전송 받은 경우 form 속 input 의 name="이름" 을 이용해서
$_POST["이름"] 으로 사용할 수 있지 않을까? 하는 생각은 버리자
파일의 경우 $FILES 라는 약속된 변수에 저장되어 있다.
"이름"은 폼 태그 하위 인풋 태그에서 사용한 name="이름" 의 그 이름이다.
$FILES["이름"] 으로 배열화 되어있는 파일의 정보에 접근할 수 있다.
$FILES["이름"]["name"] //-> 파일 이름. 확장자
$FILES["이름"]["type"] //-> image 인지 text 인지 / 형식?(png , plain 등 )
$FILES["이름"]["tmp_name"] //->템프 경로, 파일을 목표 경로로 옮기기 전 잠시있는 곳
$FILES["이름"]["error"] //-> 전송중? 에러 사항?
$FILES["이름"]["size"] //-> 파일 용량
$uploadDir = '경로\\';// 이 경로는 서버의 물리적 경로
//경로 까지만 담고있고 끝에 역슬래쉬가 두개 있는게 특징. 윈도우에서만 그렇다
$uploadFile = $uploadDir.basename($_FILES["이름"]["name"]);
//경로에 파일명을 붙여주는 작업, .을 이용해 텍스트+텍스트 해준다.
//basename은 여기서는 이스케이핑 역할, 정확한 파일명만 추리기 위해
if( move_uploaded_file($_FILES["이름"]["tmp_name"], $uploadFile)){
echo " 파일 유효 업로드 성공";
}
else {
print "파일 업로드 공격의 가능성이 있음";
}
//임시파일로 존재하는 파일을 $uploadFile 로서 해당 위치와 파일명으로 이동
<img src="file/<?=$_FILES['userFile']['name']?>" />
//이미지를 출력, 이곳 src="URL" 임, php파일이 있는 경로에 이미지 파일이 있음
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
php로 작성된 부분은 web server에 의해 php interpretor에 위임되어 행해지는 부분이고
java script로 작성된 부분은 web browser에 의해 행해지는 부분이다.
web browser 페이지의 소스를 보면 js는 작성한 그대로 보이지만
php코드 부분은 결과만을 확인할 수 있다. 이유가 바로 위에서 언급한 특징 때문이다.
<?php
php코드
?>
※<?php .. 에서 ?와 p 사이에 띄어쓰기 하면 안됨
<script>
java script 코드
</script>
---------------------------------------------------------------------
- echo
echo "Hello world"; //문자의 경우" "로 감싸줘야 한다.
echo 10000;
echo "10000"+"10000"; //20000 출력
echo "H"+"W";//0 출력
echo "10" . "10";//1010 출력 // . 은 두 문자열 연결
---------------------------------------------------------------------
- $변수명
: 앞에 $를 붙인다.
---------------------------------------------------------------------
- 배열
$list = array("1","2","3"); // php , ※ var list = new Array("1","2","3"); // java script
- 배열의 크기
$size = count($list); // php , ※ var size = list.length; // js
---------------------------------------------------------------------
- 함수
function FuncPHP($input)
{
return $input + 1;
}
- 함수 호출
FuncPHP(3);
---------------------------------------------------------------------
-디렉토리(경로) 관리
getcwd(); // 현재 디렉토리 구함
chdir("../"); // 경로 변경, ("../" 은 부모 경로 = 한 계층 위 의미 )
chdir("폴더명"); // 해당 경로로 이동
$dir = "./"; // = current directory
$files1 = scandir($dir);//경로내 파일들 순차 정렬
$files2 = scandir($dir, 1);//경로내 파일들 역순 정렬
만들기
mkdir("1/2/3/4", 0700, true);
//1이라는 폴더 밑에 2 밑에 3 밑에 4라는 폴더가 없으면 만든다. 있으면 warning
//0700: 권한 설정, 오너 그룹 아더, 자세한건 추후 기입
//true: 1/2/3 까지의 경로가 없다면 1,2,3을 만들어 준다는 설정 설정
---------------------------------------------------------------------
-파일명 보안
basename = 이하 b 로 표시
b("/etc/sudoers.d", ".d"); // -> "sudoers"
b("/etc/sudoers.d"); // -> "sudoers.d"
b("/etc/pass"); // -> "pass"
b("/etc/"); // -> "etc"
b("."); // -> "."
b("/"); // -> ""
//이렇게 파일명만을 추려내는 기능 이스케이핑 같은 목적으로 사용
---------------------------------------------------------------------
-ini 설정 runtime 변경
ini_set("display_error", "1");
//
---------------------------------------------------------------------
-이미지 파일 전송 받아 출력하기
form 태그로 전송 받은 경우 form 속 input 의 name="이름" 을 이용해서
$_POST["이름"] 으로 사용할 수 있지 않을까? 하는 생각은 버리자
파일의 경우 $FILES 라는 약속된 변수에 저장되어 있다.
"이름"은 폼 태그 하위 인풋 태그에서 사용한 name="이름" 의 그 이름이다.
$FILES["이름"] 으로 배열화 되어있는 파일의 정보에 접근할 수 있다.
$FILES["이름"]["name"] //-> 파일 이름. 확장자
$FILES["이름"]["type"] //-> image 인지 text 인지 / 형식?(png , plain 등 )
$FILES["이름"]["tmp_name"] //->템프 경로, 파일을 목표 경로로 옮기기 전 잠시있는 곳
$FILES["이름"]["error"] //-> 전송중? 에러 사항?
$FILES["이름"]["size"] //-> 파일 용량
$uploadDir = '경로\\';// 이 경로는 서버의 물리적 경로
//경로 까지만 담고있고 끝에 역슬래쉬가 두개 있는게 특징. 윈도우에서만 그렇다
$uploadFile = $uploadDir.basename($_FILES["이름"]["name"]);
//경로에 파일명을 붙여주는 작업, .을 이용해 텍스트+텍스트 해준다.
//basename은 여기서는 이스케이핑 역할, 정확한 파일명만 추리기 위해
if( move_uploaded_file($_FILES["이름"]["tmp_name"], $uploadFile)){
echo " 파일 유효 업로드 성공";
}
else {
print "파일 업로드 공격의 가능성이 있음";
}
//임시파일로 존재하는 파일을 $uploadFile 로서 해당 위치와 파일명으로 이동
<img src="file/<?=$_FILES['userFile']['name']?>" />
//이미지를 출력, 이곳 src="URL" 임, php파일이 있는 경로에 이미지 파일이 있음
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
2015년 6월 25일 목요일
css
참고 사이트
<head>
<meta charset="utf-8">
<style>
--여기가 CSS 부분, style 테그 안쪽 부분
</style>
</head>
----------------------------------------------------------------
- 반영될 항목 지정
html tag 이름 직접 입력 하는 경우
h1, h2, input {
color: red;
font-size: 10px
text-decoration:underline;
}
//head 태그 하위의 h1에만 적용
header h1{
border: 1px;
border-style: solid;
border-color: red;// transparent는 투명
}
//class="btn_start" 인 것에 적용
.btn_start{
width: 250px;
height: 35px;
font-size: 17px;
}
//id="btn_start" 인 것에 적용
#btn_start{
text-decoration: underline;
}
----------------------------------------------------------------
- css 파일 분리
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/csss" href="http://gsyan.iptime.org:8080/style.css">
--link로 이 문서 외부에 존재하는 style.css문서의 내용을 이곳에 대체 한다는 뜻
-- 중복의 제거, 수정작업 효율성 증대 기대
<head>
<meta charset="utf-8">
<style>
--여기가 CSS 부분, style 테그 안쪽 부분
</style>
</head>
----------------------------------------------------------------
- 반영될 항목 지정
html tag 이름 직접 입력 하는 경우
h1, h2, input {
color: red;
font-size: 10px
text-decoration:underline;
}
//head 태그 하위의 h1에만 적용
header h1{
border: 1px;
border-style: solid;
border-color: red;// transparent는 투명
}
//class="btn_start" 인 것에 적용
.btn_start{
width: 250px;
height: 35px;
font-size: 17px;
}
//id="btn_start" 인 것에 적용
#btn_start{
text-decoration: underline;
}
----------------------------------------------------------------
- css 파일 분리
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/csss" href="http://gsyan.iptime.org:8080/style.css">
--link로 이 문서 외부에 존재하는 style.css문서의 내용을 이곳에 대체 한다는 뜻
-- 중복의 제거, 수정작업 효율성 증대 기대
html
<!DOCTYPE html>
이 html 문서가 어떤 표준안에 따라 작성되었는가를 표현
--------------------------------------------------------------
<head>
이 안에 들어가는 내용들
</head>
<meta charset = "utf-8" /> // 한글이 안깨지게 해줌
<title> 웹 창의 타이틀 </title>
--------------------------------------------------------------
<body>
이 안에 들어가는 내용들
</body>
tag <a>
<a href = "url"> 링크 </a> // 현재 창에서 이동
<a href = "url" target="_self"> 링크 </a> // 현재 창에서 이동
<a href = "url" target="_blank"> 링크 </a> // 새창에서 열기
tag <ol>, <ul>
<ol>
<li>html</li>
<li>css</li>
<li>java</li>
<li>순서필요함 ordered list</li>
</ol>
<ul>
<li>지은호</li>
<li>지은동</li>
<li>순서필요없음 unordered list</li>
</ul>
Tag Reference
--------------------------------------------------------------
Debug
참고사이트
1) 크롬 우측 상단의 메뉴버튼 / 도구 더 보기 / 자바 스크립트 콘솔 -> 오류 메세지 확인
2) apache2 / logs / error.log 를 atom에서 열어서 제일 밑에 있는 최신 에러항목 확인
--------------------------------------------------------------
Escape( 이스케이핑)
& -> & (ampersand, &, 앤드 기호)
< -> < ( less than )
> -> > ( greater then )
" -> " ( quatation mark )
&apos -> ' ( apostrophe )
--------------------------------------------------------------
공백문자
 
이 html 문서가 어떤 표준안에 따라 작성되었는가를 표현
--------------------------------------------------------------
<head>
이 안에 들어가는 내용들
</head>
<meta charset = "utf-8" /> // 한글이 안깨지게 해줌
<title> 웹 창의 타이틀 </title>
--------------------------------------------------------------
<body>
이 안에 들어가는 내용들
</body>
<a href = "url"> 링크 </a> // 현재 창에서 이동
<a href = "url" target="_self"> 링크 </a> // 현재 창에서 이동
<a href = "url" target="_blank"> 링크 </a> // 새창에서 열기
tag <ol>, <ul>
<ol>
<li>html</li>
<li>css</li>
<li>java</li>
<li>순서필요함 ordered list</li>
</ol>
<ul>
<li>지은호</li>
<li>지은동</li>
<li>순서필요없음 unordered list</li>
</ul>
Tag Reference
--------------------------------------------------------------
Debug
참고사이트
1) 크롬 우측 상단의 메뉴버튼 / 도구 더 보기 / 자바 스크립트 콘솔 -> 오류 메세지 확인
2) apache2 / logs / error.log 를 atom에서 열어서 제일 밑에 있는 최신 에러항목 확인
--------------------------------------------------------------
Escape( 이스케이핑)
& -> & (ampersand, &, 앤드 기호)
< -> < ( less than )
> -> > ( greater then )
" -> " ( quatation mark )
&apos -> ' ( apostrophe )
--------------------------------------------------------------
공백문자
 
피드 구독하기:
글 (Atom)