'2008/04'에 해당되는 글 8건
- 2008/04/28 [PHP] 여태 뭐했나?
- 2008/04/28 [PHP] 꼭 알아둬야할 PHP함수
- 2008/04/24 [C++] 과제였지만, 좀 아까워서,
- 2008/04/24 [PHP] 해왔던 과제도 포트폴리오가 될수 있을까?
- 2008/04/24 토익 영어 중간고사
- 2008/04/24 오홋? 시험이 좁혀오는군요?
- 2008/04/14 [스크랩] 연결 리스트라는 자료 구조의 실용성
- 2008/04/06 [스크랩] 연결리스트
* time()
- 용도 : 현재 시각을 timestamp값으로 구한다.
- 방법 : time()
- 용도 : 사용자가 지정한 형태로 시간을 표시. 특정시간의 날짜와 요일등을 배열로 리턴한다.
- 방법 : date("표시할 시간의 포맷형태","특정한 timestamp값")
- 용도 : 지정된 날짜를 timestamp값으로 변환한다.
- 방법 : mktime(시,분,초,월,일,년)
- 용도 : 날짜와 시간이 올바른 범위 안에 있는지 검사한다.
- 방법 : checkdate(월,일,년)
- 용도 : 특정timestamp값으로 시간,요일,날짜정보를 배열로 반환한다.
- 방법 : getdate(timestamp값) 또는 getdate()
- 용도 : 현재 시스템의 현재 시간 정보를 배열로 리턴한다.
- 방법 : gettimeofday()
- 용도 : 그리니치표준 시간으로 지정한 날짜의 timestamp값을 리턴한다.
- 방법 : gmmktime(시,분,초,월,일,년)
- 용도 : 특정한 포맷으로 날짜 정보를 출력하는데 언어를 지정할수 있다.
- 방법 : strftime("표시할 시간의 포맷형태","특정시간의 timestamp값")
- 용도 : 현재시간의 마이크로타임 값과 timestamp값을 표시한다.
- 방법 : microtime()
- 용도 : 현재 서버의 로컬 타임을 표시
- 방법 : localtime() 또는 localtime("timestamp값")
- 용도 : 작은따옴표 큰따옴표와 같은 특정문자 앞에 역슬래시 문자를 붙인다.
- 방법 : addslashes()
* stripslashes()
- 용도 : allslashes로 역슬래시 처리된 문자를 원상태로 되돌린다.
- 방법 : stripslashes()
* htmlspecialchars()
- 용도 : HTML코드를 소스 그대로 출력해준다.
- 방법 : htmlspecialchars()
* nl2br()
- 용도 : 문자열에 포함된 개행 문자를 <br>태그로 모두 바꿔준다.
- 방법 : nl2br()
* echo()
- 용도 : 문자열 출력
- 방법 : echo("변수명" 또는 "문자열")
* sprintf()
- 용도 : 포맷 문자열을 통해 지정해 준 포맷으로 문자열을 표시한다.
- 방법 : sprintf("포맷","변수명")
* printf()
- 용도 : 지정할 수 있는 포맷에 따라 문자열을 출력한다.
- 방법 : printf("포맷","변수명")
* explode()
- 용도 : 문자열을 지정해준 구분자로 분리하여 배열에 저장한다.
- 방법 : explode("구분자","문자열인수")
* implode()
- 용도 : 구분자로 나누어 배열에 담은 문자열을 다시 지정해준 구분자로
- 방법 : implode("구분자",배열변수명)
* join()
- 용도 : implode()와 동일한 기능을 수행한다.
- 방법 : join("/", "배열변수명")
* split()
- 용도 : 주어진 문자열을 정규표현식의 패턴에 따라 분리하여 배열에 저장한다.
- 방법 : implode("정규표현식","문자열")
* strcmp()
- 용도 : 두개의 문자열을 비교하여 참이면1, 거짓이면 0을 반환한다.
- 방법 : strcmp("문자열","문자열") 또는 strcmp("문자열","변수명") 또는 strcmp(변수명, 변수명)
* substr()
- 용도 : 문자열에서 특정시작 문자부터 길이만큼의 문자열을 추출하여 반환한다.
- 방법 : substr("문자열", 시작문자번호, 문자열의 길이)
* strchr()
- 용도 : 문자열이 처음으로 나타나는 위치부터 끝까지 반환
- 방법 : strchr("문자열","찾을 문자열")
* strstr()
- 용도 :strchr()함수와 동일한 수행을 한다.
- 방법 : strstr("문자열","찾을 문자열")
* strrchr()
- 용도 : 문자열이 마지막으로 나타나는 위치부터 끝까지 반환한다.
- 방법 : strrchr("문자열","찾을문자열")
* strpos()
- 용도 : 문자열 대신 처음으로 나타나는 위치를 숫자로 반환, 이때 숫자는 0부터 시작.
- 방법 : strpos("문자열","찾을 문자열")
* strrpos()
- 용도 : 찾고자 하는 문자열에서 마지막으로 나타나는 위치를 반환한다.
- 방법 : strrpos("문자열", "찾을 문자열")
* strlen()
- 용도 : 문자열의 길이를 반환한다.
- 방법 : strlen($변수명) 또는 strlen("문자열")
* strtolower()
- 용도 : 알파벳 대문자를 모두 소문자로 바꾸어 반환한다.
- 방법 : strtolower("문자열")
* strtoupper()
- 용도 : 알파벳 대문자를 소문자로 바꾸어 반환한다.
- 방법 : strtoupper("문자열")
* ucfirst()
- 용도 : 알파벳 문자열의 첫 글자를 대문자로 반환한다.
- 방법 : unfirst("문자열")
* ucwords()
- 용도 : 알파벳 문자열의 첫 글자를 대문자로 반환한다.
- 방법 : ucwords("문자열")
* strrev()
- 용도 : 인자로 전달한 문자열의 순서를 역전시킨다.
- 방법 : strrev("문자열")
* strtr()
- 용도 : 문자열에서 변경하고자 하는 문자열을 변경할문자열로 1:1 변경해준다.
- 방법 : strtr("문자열","변경하고자하는 문자열","변경할 문자열")
* str_replace
- 용도 : 문자열 중에 변경하고자 하는 문자열을 찾아 변환한다.
- 방법 : str_replace("찾을 문자열","변경할 문자열","문자열 원본")
* chop()
- 용도 : 문자열의 뒷부분의 공백 문자를 제거한 후 반환한다.
- 방법 : chop("문자열")
* trim()
- 용도 : 문자열의 앞과 뒤에 있는 공백을 제거한 후 문자열을 반환한다.
- 방법 : trim("문자열")
* quotemeta()
- 용도 : 메타문자 앞에 역슬래시를 붙인다.
- 방법 : quotemeta()
* ord/chr()
- 용도 : ord()함수는 문자열에서 첫번째 문자에 아스키코드값을 반환하고 chr()함수는
- 방법 : ord("문자열"), chr("아스키값")
* parse_str()
- 용도 : get방식과 같은 형태의 변수형을 변수와 값으로 받을 수 있게 해준다.
- 방법 : parse_str(변수명)
3.파일관련함수
* fopen()
- 용도 : 로컬경로의 파일이나 url경로의 파일을 읽기 모드나 쓰기 모드로 열어준다.
- 방법 : fopen("절대경로명/파일", "모드")또는 fopen("url주소", "모드")
* fclose()
- 용도 : fopen으로 열린 파일을 닫는다.
- 방법 : fclose($fp)
* fread()
- 용도 : 파일포인터가 가리키는 파일의 내용을 지정한 크기만큼 읽어 들인다.
- 방법 :fread($fp,"읽어들일 바이트")
* feof()
- 용도 : 현재 파일 포인터가 파일의 끝인지를 알려주는 함수
- 방법 : feof($fp)
* fgets()
- 용도 : 파일을 읽어올때 한줄씩 읽어온다.
- 방법 : fgets($fp,"읽어들일 바이트")
* fputs()
- 용도 : 파일을 a 또는 w 모드로 열어 문자열을 파일에 기록한다.
- 방법 : fputs($fp, "문자열")
* fwirte()
- 용도 : 파일을 기록한다.
- 방법 : fwrite($fp, "문자열")
* fpassthru()
- 용도 : 파일포인터의 현재 위치에서 파일의 끝까지 읽어 들이도록 한다.
- 방법 : fpassthru($fp)
* readfile()
- 용도 : fpassthru와 비슷하지만 fopen()없이 직접 바로 파일을 읽어들일 수 있다.
- 방법 : readfile("파일의 절대경로 또는 상대경로/파일명")
* fgetc()
- 용도 : 파일로부터 한문자를 읽어들인다.
- 방법 : fgetc($fp)
* filesize()
- 용도 : 파일의 크기를 바이트수로 반환한다.
- 방법 : filesize("파일경로/파일명")
* file_exists()
- 용도 : 파일이름으로 지정한 파일이 존재하는지 검사한다.
- 방법 : file_exists("파일경로/파일명")
* is_file()
- 용도 : 파일이름으로 지정한 이름이 파일면 true를 반환한다.
- 방법 : is_file("파일경로/파일명")
* is_dir()
- 용도 : 파일이름으로 지정한 이름이 디렉토리일경우 true를 반환한다.
- 방법 : is_dir("파일경로/파일명")
* is_link()
- 용도 : 파일이름으로 지정한 이름이 심볼릭 링크일경우 true를 반환한다.
- 방법 : is_link("파일경로/파일명")
* is_escutable()
- 용도 : 파일이름으로 지정한 파일이 실행 가능한 파일이면 true를 반환한다.
- 방법 : is_excutable("파일경로/파일명")
* is_readable()
- 용도 : 파일이름으로 지정한 파일이나 디렉토리가 읽기 가능한경우 true를 반환한다
- 방법 : is_readable("파일경로/파일명 또는 디렉토리명")
* is_writeable()
- 용도 : 파일이름으로 지정한 파일이나 디렉토리가 쓰기 가능한 경우 true를 반환한다
- 방법 : is_writeable("파일경로/파일명 또는 디렉토리명")
* copy()
- 용도 : 파일을 복사하고 제대로 수행이 되면 true를 반환한다.
- 방법 : copy("파일경로/복사할 파일명", "파일경로/복사된 파일명")
* rename()
- 용도 : 파일을 이름을 바꾼다. 제대로 수행이 되면 true를 반환한다.
- 방법 : rename("파일경로/변경할 파일명", "파일경로/변경후 파일명")
* unlink()
- 용도 : 파일을 삭제한다. 제대로 수행될 경우 true를 반환한다.
- 방법 : unlink("파일경로/삭제할 파일명")
* mkdir()
- 용도 : 디렉토리를 생상하고 동시에 권한도 함께 지정할 수 있다.
- 방법 : mkdir("경로/디렉토리명")
* rmdir()
- 용도 : 디렉토리 삭제
- 방법 : rmdir("경로/디렉토리명")
* basename()
- 용도 : 경로명과 파일명을 받아 파일명만을 반환한다.
- 방법 : basename("파일경로/파일명")
* dirname()
- 용도 : 경로명과 파일명을 받아 경로명만을 반환한다.
- 방법 : dirname("파일경로/파일명")
* file()
- 용도 : 줄단위로 읽어서 각 줄으 문자열을 배열로 하여 반환한다.
- 방법 : dirname("파일경로/파일명")
4.디렉토리 관련함수
* opendir()
- 용도 : 지정한 디렉토리에 대한 핸들을 얻는다.
- 방법 : opendir("디렉토리 경로")
* closedir()
- 용도 : opendir()함수 호출로 열어둔 디렉토리에 대한 핸들을 닫는다.
- 방법 : closedir($od)
* readdir()
- 용도 : 디렉토리에 있는 모든 디렉토리 및 파일들의 이름을 읽어 배열의 형태로 반환
- 방법 : readdir($od)
* rewinddir()
- 용도 : 디렉토리 핸들의 포인터 위치를 제일 처음으로 되돌린다.
- 방법 : rewinddir($od)
* chdir()
- 용도 : 지저한 디렉토리로 바꾼다.
- 방법 : chdir("경로명/디렉토리명")
* dir()
- 용도 : 디렉토리 관련 함수를 사용할 수 있는 클래스
- 방법 : dir("경로/디렉토리명")
5. URL관련함수
* parse_url()
- 용도 : url을 입력하면 해당 url에 대한 정보를 연관 배열로 저장하여 반환
- 방법 : parse_url("URL주소")
* urlencode()
- 용도 : 데이터를 url인코딩해준다.
- 방법 : urlencode("문자열")
* urldecode()
- 용도 : url을 통해 넘어온 값 중 인코딩된 문자열을 디코딩한다.
- 방법 : urldecode("문자열")
6.변수 및 수학 관련함수
* gettype()
- 용도 : 변수형을 반환한다.
- 방법 : gettype("변수명")
* settype()
- 용도 : 변수형을 변환한다.
- 방법 : settype("변수명", "변수타입")
* intval()
- 용도 : 변수값을 정수형 값으로 변환
- 방법 : intval("변수값")
* doubleval()
- 용도 : 변수값을 실수형 값으로 변환한다.
- 방법 : doubleval("변수값")
* strval()
- 용도 : 변수를 문자형 값으로 변환한다.
- 방법 : strval("변수값")
* isset()
- 용도 : 변수가 존재하는지 확인한다.
- 방법 : isset("변수명")
* unset()
- 용도 : 변수를 삭제한다.
- 방법 : unset("변수명")
* empty()
- 용도 : 변수에 값이 존재하는지 확인하여 없으면 true를 있으면 false를 반환한다.
- 방법 : empty("변수명")
* is_array()
- 용도 : 변수의 형이 배열인지 확인한다.
- 방법 : is_array("변수명")
* is_double
- 용도 : 변수의 형이 더블형인지 확인한다.
- 방법 : is_double("변수명")
* abs()
- 용도 : 변수의 절대값을 반환
- 방법 : abs("변수명")
* round()
- 용도 : 변수의 반올림한 값을 구한다.
- 방법 : round("변수명")
* ceil()
- 용도 : 변수 값의 무조건 올림 값을 구한다.
- 방법 : ceil("변수명")
* floor()
- 용도 : 변수값의 무조건 내림 값을 구한다.
- 방법 : floor("변수명")
* pow()
- 용도 : 인자 값만큼 제곱승 한 값을 구한다.
- 방법 : pow("변수명", "제곱할 횟수")
* max & min()
- 용도 : 최대값과 최소값을 구한다.
- 방법 : max("숫자값", "숫자값",...) min("숫자값", "숫자값",...)
7.기타 알아두어야 할 함수
* count()/sizeof()
- 용도 : 배열의 크기를 구한다.
- 방법 : count("변수명") sizeof("변수명")
* each()/list()
- 용도 : 배열의 내용을 출력할때 사용한다.
- 방법 : each("배열변수명"), list("배열의 인자를 받을 변수명", "배열의 인자를 받을 변수명"...)
* end()/next()/reset()
- 용도 : 현재 배열의 포인터를 끝이나 다음으로 이동시킨다.
- 방법 : end("배열변수명") next("배열변수명")
* exec()
- 용도 : 리눅스 서버의 내부 명령어를 사용하게 한다.
- 방법 : exec("리눅스명령어", "결과를 저장할 변수명" ,"에러발생시 저장할 변수명")
* number_format()
- 용도 : 천단위마다 ","를 붙여준다.
- 방법 : number_format("변수명", "소수점자리수", "소수점 표시마크변경", "천단위 표시 마크변경")
* show_source() / highlight_string()
- 용도 : php파일의 소스를 보여준다.
- 방법 : show_source("경로명/파일명") highlight_string("변수명")
* uniqid()
- 용도 : 유일한 아이디 값을 만들어준다
- 방법 : uniqid()
[출처] 반드시 알아야할 PHP 기본 함수|작성자 워니
그건 좀 아니다.
토익시험.
20문제 못품.
끗.
시험과목
|
날짜 |
요일 |
과목 |
비고 |
|
|
|
|
|
|
4월 28일 |
월요일 |
웹프로그래밍 |
|
|
4월 29일 |
화요일 |
프로그래밍 언어론 |
|
|
4월 30일 |
수요일 |
생활일어 |
6장까지 |
|
5월 01일 |
목요일 |
논리회로 |
4장까지 |
|
5월 01일 |
목요일 |
이산수학 |
|
비 시험과목&과제물
|
날짜 |
요일 |
과목 |
비고 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4월 30일 |
수요일 |
논리와 사고 |
과제물 - 5~10장 요약해서 제출 |
|
4월 30일 |
수요일 |
토익영어 |
과제물 - 퀴즈대비 단어암기 |
|
4월 30일 |
수요일 |
생활일어 |
과제물 - 가타카나 외우기 |
연결 리스트를 처음 배운 사람들은 다음에 실무를 할 때 한번씩 꼭 써보고 싶다는 생각이 들 정도로 매력적이기도 하다. 그러나 사실 현대의 컴퓨터 환경에서 연결 리스트의 실용성은 거의 빵점에 가까울 정도로 형편없다. 연결 리스트의 주요 단점들을 간략하게 정리해 보면 다음과 같다.
① 읽기 속도가 형편없이 느리다. 노드간의 관계가 링크로만 저장되기 때문에 중간의 한 노드를 찾으려면 순회해 보는 것만이 유일한 방법이다. 10만개의 노드 중 78000번째 노드를 읽어야 한다면 정말 끔찍할 것이다. 링크에 의해 삽입, 삭제는 빨라졌지만 대신 검색 속도가 느려진 것이다. 자료를 다루는 동작의 90%는 읽기이며 삽입, 삭제는 상대적으로 흔한 동작이 아니므로 읽는 동작이 느리다는 것은 치명적인 단점이다.
② 메모리 효율이 아주 좋지 못하다. 데이터 외에 링크를 별도로 가져야 하므로 링크분만큼의 메모리가 더 소모됨은 물론이고 개별 노드를 동적으로 할당해야 하므로 할당 헤더에 의한 메모리 소모도 만만치 않다. 게다가 삽입, 삭제를 빈번하게 할 경우 메모리 단편화가 심해져 시스템의 전체적인 성능도 떨어진다. 똑같은 자료를 저장하는 배열과 비교한다면 최소한 2배, 많게는 6배 정도의 메모리가 더 필요하다.
③ 코드가 그리 어렵지는 않지만 배열과 비교했을 때 상대적으로 복잡하고 포인터 구문이 많아 개발자가 실수를 할 가능성이 많다. 링크 자체가 포인터인데다가 데이터에 포인터가 포함되어 있으면 a->next->b->data[3].c 따위의 복잡한 구문도 자주 사용된다. 이런 다단계 참조문을 다룰 때는 항상 주의해야 하며 직관적이지도 못해서 읽기 어렵고 유지, 보수 비용도 증가한다. 개발 시간이 더 오래 걸리며 개발 비용도 결국 비싸진다.
④ 자료 구조의 내부적인 모양이 선형(linear)이 아닌 입체적인 모양을 하고 있어 스트림 입출력이 번거롭다. 연결 리스트를 파일로 저장하려면 링크는 빼고 데이터만 저장해야 하며 다시 불러 올때는 일일이 링크를 복원해야 한다. 링크는 메모리상에서만 의미가 있는 값이므로 저장 대상이 될 수 없다. 리스트 전체를 화면으로 출력하거나 네트웍으로 전송할 때도 여러 모로 불편한 점이 많다.
⑤ qsort, bsearch 등의 알고리즘을 구현하는 표준 함수들은 기본적으로 배열에 대해 동작하도록 작성되어 있다. 연결 리스트는 이런 표준 함수의 서비스를 받을 수 없다.
물론 연결 리스트는 삽입과 삭제가 엄청나게 빠르다는 장점도 있다. 그러나 그 뿐이며 이 장점만 제외하면 단점 투성이인 자료 구조라고 할 수 있다. 동적 배열도 밀고 당기는 식으로 삽입, 삭제가 가능하기는 하지만 연결 리스트보다는 느렸다. 그러나 이런 사정이 컴퓨터가 빨라지면서 달라지기 시작해 현대의 컴퓨터 환경에서 수천~수만 건의 자료는 배열로 밀고 당겨도 속도 감소를 체감하지 못할 정도이며 수백건인 경우는 오히려 배열이 더 빠르다. 메모리 이동 함수인 memmove는 CPU가 하드웨어적으로 처리하기 때문에 상상을 불허할 정도로 고속으로 동작한다.
연결 리스트의 빠른 삽입 속도가 배열을 압도할 정도가 되려면 자료가 수십만 건 정도 되어야 하며 백만건 정도 된다면 배열보다 연결 리스트가 확실히 나은 성능을 보여줄 것이다. 그러나 이 정도의 자료라면 당연히 트리 구조를 쓰는 것이 합리적이다. 결국 연결 리스트는 중소 규모에서는 배열에게 밀리고 대규모에서는 트리에게 밀려 지금은 설 자리가 마땅치 않은 자료 구조가 된 것이다. 연결 리스트가 월등히 우월한 경우라면 PDA나 핸드폰 등 느린 프로세서를 가진 기계에서 삽입, 삭제가 아주 빈번하고 자료의 양이 많을 때 정도에 국한된다.
연결
fun.exe