parse_str

(PHP 4, PHP 5)

parse_str문자열을 변수로 해석

설명

void parse_str ( string $str [, array &$arr ] )

str 을 URL을 통한 질의 문자열처럼 처리하여, 현재 위치에 변수를 설정합니다.

Note: 현재 QUERY_STRING을 얻기 위하여, $_SERVER[‘QUERY_STRING’]을 사용할 수 있습니다. 또한, 외부 변수 섹션을 읽어보는 편이 좋습니다.

Note: magic_quotes_gpc 설정이 이 함수의 출력에 영향을 줍니다. parse_str()은 PHP가 $_GET, $_POST 등의 변수를 생성할 때와 동일한 작동 방식을 사용합니다.

인수

str

입력 문자열.

arr

두번째 인수 arr 이 존재하면, 변수들을 이 배열 원소로 저장합니다.

반환값

값을 반환하지 않습니다.

변경점

버전 설명 4.0.3 arr인수 추가

예제

Example #1 parse_str() 사용하기

<?php
$str 
"first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo 
$first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

parse_str($str$output);
echo 
$output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

?>

참고

parse_str

(PHP 4, PHP 5)

parse_str문자열을 변수로 해석

설명

void parse_str ( string $str [, array &$arr ] )

str 을 URL을 통한 질의 문자열처럼 처리하여, 현재 위치에 변수를 설정합니다.

Note: 현재 QUERY_STRING을 얻기 위하여, $_SERVER[‘QUERY_STRING’]을 사용할 수 있습니다. 또한, 외부 변수 섹션을 읽어보는 편이 좋습니다.

Note: magic_quotes_gpc 설정이 이 함수의 출력에 영향을 줍니다. parse_str()은 PHP가 $_GET, $_POST 등의 변수를 생성할 때와 동일한 작동 방식을 사용합니다.

인수

str

입력 문자열.

arr

두번째 인수 arr 이 존재하면, 변수들을 이 배열 원소로 저장합니다.

반환값

값을 반환하지 않습니다.

변경점

버전 설명 4.0.3 arr인수 추가

예제

Example #1 parse_str() 사용하기

<?php
$str 
"first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo 
$first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

parse_str($str$output);
echo 
$output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

?>

참고

많은 사람들이 알고 계시는 폰트는 트루타입폰트라고 부르는 폰트의 종류중 하나입니다.

트루타입폰트는 제어판의 글꼴폴더나 윈도우즈 아래에 있는 Fonts 디렉토리에 설치하여,

 포토샵,워드 등의 프로그램에서 사용할 수 있습니다.

나모같은 웹에디터에서 트루타입폰트를 이용하여 작업하실 수 있지만,

이런 트루타입폰트를 이용하여 작업해 놓았다고 해서

방문자에게 해당 폰트로 보여지지는 않습니다.

방문자의 컴퓨터에 해당 폰트가 설치되어 있어야만 작업해 놓은 폰트로 볼 수 가 있으며,

 만일 해당폰트가 설치되어 있지 않을 경우에는 기본폰트로 보여지게 됩니다.

예를들어, 휴먼엽서체가 마음에 들어서 열심히 홈페이지의 글자들을 휴먼엽서체로

작업해 놓아도 방문자는 굴림체로 보여지고 있을 것입니다.

이것을 확인해 보려면, 제어판의 글꼴폴더에서 휴먼엽서체를 삭제하고

본인의 홈페이지를 방문해 보기 바랍니다.

이런 문제를 극복하기 위해 제작된 것이 웹폰트이며, 웹폰트를 이용하여

홈페이지를 디자인해 놓으면, 방문자는 폰트를 가지고 있지 않아도

해당 폰트로 볼 수 가 있게 됩니다.

많은 사람들이 알고 계시는 폰트는 트루타입폰트라고 부르는 폰트의 종류중 하나입니다.

트루타입폰트는 제어판의 글꼴폴더나 윈도우즈 아래에 있는 Fonts 디렉토리에 설치하여,

 포토샵,워드 등의 프로그램에서 사용할 수 있습니다.

나모같은 웹에디터에서 트루타입폰트를 이용하여 작업하실 수 있지만,

이런 트루타입폰트를 이용하여 작업해 놓았다고 해서

방문자에게 해당 폰트로 보여지지는 않습니다.

방문자의 컴퓨터에 해당 폰트가 설치되어 있어야만 작업해 놓은 폰트로 볼 수 가 있으며,

 만일 해당폰트가 설치되어 있지 않을 경우에는 기본폰트로 보여지게 됩니다.

예를들어, 휴먼엽서체가 마음에 들어서 열심히 홈페이지의 글자들을 휴먼엽서체로

작업해 놓아도 방문자는 굴림체로 보여지고 있을 것입니다.

이것을 확인해 보려면, 제어판의 글꼴폴더에서 휴먼엽서체를 삭제하고

본인의 홈페이지를 방문해 보기 바랍니다.

이런 문제를 극복하기 위해 제작된 것이 웹폰트이며, 웹폰트를 이용하여

홈페이지를 디자인해 놓으면, 방문자는 폰트를 가지고 있지 않아도

해당 폰트로 볼 수 가 있게 됩니다.

http://sosal.tistory.com/226

추상화 개념은 컴퓨터과학이라는 학문과 컴퓨터 시스템 설계 곳곳에서 이용되고 있다.

추상화 (Abstraction) 이라는 용어는 개체의 외적 속성과, 내적 구성의 세부사항을
구별하는것을 가리킨다.

우리는 추상화를 통해서 컴퓨터, 자동차, 전자레인지, 또는 프로그래밍의 함수 등에서
복잡하고 어려운 내적 세부사항을 무시한 채 하나의 도구, 또는 장비로 파악하여
간단하게 사용할 수 있게 된다.
더욱이 이렇게 복잡한 시스템을 설계하고 제작할 수 있는 것도 추상화를 통해서이다.
컴퓨터, 자동차 등의 여러 큰 물품 등은 각기 여러 부품들이 사용되어 제작되는데,
물품을 구성하는 이러한 부품들 또한 작은 부품들로 구성되어진다.

하지만 물품을 사용하는 이용자 입장에서, 이러한 작은 부품들이 어디에 사용되는지,
어떻게 사용되는지, 사용하는 방법 등의 세부적인 사항을 모르더라도
쉽게 제품을 사용할 수 있도록 제품들이 제작되었다.
이것이 추상화가 우리에게 주는 편리성이다.

추상화를 통해 우리는 복잡한 하나의 개체들을 또다른 물품의 구성요소로써
하나의 상위 계층 구성요소를 형성하는지에 대해서 집중할 수 있게 된다.
-> 세부사항에 빠져 헤매지 않고, 당면 작업에 관계된 시스템 부분을 파악할 수 있게 된다.

대형 소프트웨어 시스템의 개발은 모듈 방식으로 이루어지는 것을 살펴볼 수 있는데,
이러한 방식에서 각 모듈이 더 큰 모듈에서 하나의 추상적 도구로 사용되는것을 알 수 있다

http://ko.wikipedia.org/wiki/%EC%B6%94%EC%83%81%ED%99%94_%EA%B3%84%EC%B8%B5

추상화 계층(abstraction layer)은 특정한 집합의 기능의 자세한 부분을 숨기는 한 방법이다. 추상화 계층을 이용하는 소프트웨어 모델에는 컴퓨터 네트워크 통신 프로토콜을 위한 OSI 7개 계층 모형, OpenGL 그래픽 드로잉 라이브러리, 유닉스가 기원이고 MS-DOS, 리눅스, 그 밖의 현대 운영 체제 대부분이 채택한 바이트 스트림 입출력(I/O) 모형이 있다.

유닉스 운영 체제에서 대부분의 종류의 입출력 기능은 장치로부터 읽어들이거나 장치로 기록된 바이트의 스트림으로 간주된다. 이러한 바이트 모델의 스트림은 장치 독립을 목적으로 파일 입출력, 소켓 입출력, 터미널 입출력에 쓰인다. 응용 프로그램 수준에서 장치로 읽기/쓰기를 하기 위해 프로그램은 장치(터미널과 같은 실제 장치나, 파일 시스템의 파일, 또는 네트워크 포트와 같은 가상 장치) 열기 명령을 호출한다. 이 장치의 물리적 특성은 운영 체제가 중재하며 프로그래머가 장치로부터 바이트를 읽거나 쓰기할 수 있게 하는데 이를 추상화 인터페이스라고 한다. 그 뒤 운영 체제는 바이트 스트림을 장치로 읽거나 쓸 수 있도록 실제 변형 과정을 수행한다.

컴퓨터에서의 추상화는 크게 두가지로 구분된다. 데이터추상화와 콘트롤추상화이다. 데이터를 추상화한다는것은 어찌보면, 과거부터 오래된 관습들과 수학적 개념들이 배후에 깔려있다.
예를들자, 어떠한 물건이 세개가 있다. 사람들은 공통적으로 약속을 하게된다. 어떠한 물건이 세개가 있을때 우리는 그걸 직접 그리지 말고, 기호를 이용하여 ‘3’ 이라고 표시하기로…
그리고 그 숫자들과 숫자들이 할수 있는 모든 행위들을 나열해 주는 것이다. 세개의 과일과, 두개의 나무가 있다. 총 몇개인가? 총 5개

어떻게 머리속으로 생각이 됬을까? 3+2 가 생각됬다면 정상적으로 초등학교 산수를 마친것이다. 그렇다. 3은 세개라는 개념의 추상화된 수학적 모델이고, 각 수학적 모델은 더하라라는 연산을 + 라는 기호를 이용하여 추상화 했다.

인간이 가진 직관이나 논리를 일련의 식으로 나타내어 추상화를 수행할 수 있다.

컴퓨터에서의 추상화도 이와 같다. 컴퓨터라는 기계는 1하고 0만 이해할수 있는 정말 무식한 놈이다. 그런데 우리가 많이 쓰는 C언어에서는 컴퓨터가 변수에 값을 할당도 하고, 조건분기도 하며, 반복도 시켜준다. 정말 대단하지 않은가? 이것들이 바로 추상화의 과정을 거친것이기 때문이다.

값을 대입한다(assignment)

int a=2;

이렇게 추상화 되어 있는 식으로 부터 우리는 a 라는 변수에 정수 2를 넣는구나 할 것이다. 그러나 컴퓨터 입장에서 본다면 저 한줄은 정확히 4바이트의 기억공간에 00000~00010 을 넣는 행위가 될수 있다. 추상화된 것을 더 구체화해 살펴보면 컴퓨터의 일정 메모리영역에, 전기를 넣었다가 뺏다가 하면서 어떠한 상태를 유지하는것이다. 그러나 우리는 전기가 어떻게 작동되고 있는지 고려할 필요는 전혀 없다. 그냥 값을 대입하고 싶으면 a=3, b=2 와 같은 식으로 작성하기만 하면 나머지는 컴퓨터가 알아서, 해줄것이다.

컴퓨터가하는 연산들도 마찬가지이다. c=a+b 와 같은 것이 말이 되는가?
a+b를 더하면 a가 b만큼 더해져야 되지 않턴가? 우리가 배운 수학만 가지고 계산한다면 저 문장은 절대 풀수 없다. 추상화는 주어진 환경에 따라 아무 민감하다. 일반수학에서는 c는 a+b와 같다?? 가 되지만 프로그래밍언어인 C에서 이 문장은 a+b를 먼저 계산하고, c 변수에서 그 결과를 저장하자. 라는 개념을 추상화하는 것이다.

추상화는 우리가 대단히 이해하기 힘들고 복잡한 내부 과정과 개념들은 모두다 덮어두고, 이해하기 쉬운 구조만 표현해 내는 정말 대단한 기법이다. 조금만 깊게 생각해보면 우리가 사는 세상의 거의 대부분도 이 추상화라는 기법을 이용하고 있다.