블로그 이미지
'무른모'란 부드럽다라는 뜻을 가진 '무르다'라는 말과 도구, 연장을 뜻하는 '연모'라는 순 우리말의 합성어로 소프트웨어를 말합니다. seanhigher

카테고리

분류 전체보기 (161)
Blog srart (16)
Dev Center (94)
Real Life (13)
Mac life (21)
Naver life (17)
Total657,251
Today60
Yesterday89
변수의 사용범위를 결정하는것은 변수와 메모리의 사용을 확대하는 좋은 방법이다. 중복되어 변수를 사용하게 되는 경우, 원하지 않는 값이 저장되어 있거나, 유지해야 할 값들이 사라지는 것에 대해서 대비할 수 있다.



전역변수라고 모든곳에서 사용 가능한 것이 아니다.
일반적으로 전역변수라고 하면 함수가 아닌 곳에서와, 함수에서 사용가능한 것이라고 생각하기 쉽다. 물론 어느곳에서든지 동일한 값으로 사용이 가능한 전역변수이지만, 아무런 준비없이 사용가능한 것은 아니다.

<?
  $a = 100;

  function value_print() {
    echo "value of variable \$a is $a.";
  }

  value_print();
?>

위의 소스를 실행하면 원하던 결과 대신 다음과 같은 결과 값을 보게 될 것이다.

value of variable $a is .


위와 같은 결과가 나오는 이유는 함수 안에서의 $a 와 함수 안의 $a 는 서로 다른 변수로 인식이 되기 때문이다. PHP 는 특별히 변수를 선언하는 과정이 없이 변수를 사용하게 되는데, 이러한 특성이 함수안에서 적용되어 echo 안의 $a 는 이미 전역변수로 선언된 $a 와는 다른 새로운 변수로 선언되어 사용되기 때문에 아무것도 없는 'null' 값이 저장되는 것이다.


함수안에서 전역변수 사용하기.
그렇다면 함수안에서 전역변수를 사용하기 위한 방법은 없는 것일까? 함수 안에서 동일한 변수를 전역변수를 참조하도록 선언을 해주면 된다. 함수 안에서 전역변수를 선언하기 위해서는 global 키워드를 사용한다.

<?
  $a = 100;

  function value_print() {
    global $a;          // 전역변수 참조
    echo "value of variable \$a is $a.";
  }

  value_print();
?>

위의 소스를 실행하면 다음과 같이 생각했던 결과를 얻게 된다.

value of variable $a is 100.



$GLOBALS 연관 배열.
PHP 에서는 미리 $GLOBALS 라는 연관배열이 정의되어 있다. 만약 개발자가 전역변수를 참조하기 위해 global 키워드를 사용하게 되면 그 변수는 $GLOBALS 의 연관배열에 저장이 된다. 위와 같이 global $a 라고 선언한다면 $GLOBALS['a']라는 이름으로 저장되는 것이다.

<?
  $a = 100;

  function value_print() {
    echo "value of variable \$a is $GLOBALS['a'].";          // $GLOBALS 배열을 이용한 전역변수 참조.
  }

  value_print();
?>

위와 같은 방법으로도 사용이 가능하게 된다.

Posted by seanhigher

댓글을 달아 주세요

배열은 데이터를 저장하는데 있어서 매우 유용한 방법중의 하나이다. 데이터의 순서와 인덱스를 이용하여 같은 종류나, 묶어두어야 할 자료들을 손쉽게 구분이 가능하게 할 수 있다. 변수 형태의 구분이 없는 PHP 에서는 더욱더 유연하고 다양하게 배열의 변수를 사용할 수 있다.



Array 타입의 변수.
배열은 키(key)와 값(value)의 쌍으로 구성되어 있다. 배열을 구성하는 키는 정수형과 문자열로 표현이 가능하다. 특정한 문자열을 지정하지 않을 경우 '0' 부터 차례대로 키값을 가지게 되는데 이를 인덱싱 된 배열이라고 부른다. 배열의 키가 문자열의 형태로 된 첨자를 가지고 있다면 연관 배열이라고 한다.

<?
  $people[0] = "Betty";          // 인덱싱 배열(첫번째 원소)
  $people[1] = "Jane";          // 인덱싱 배열(두번재 원소)
  $people[2] = "Steven";       // 인덱싱 배열(세번째 원소)

  $people['man'] = "Charley";          // 연관 배열(key = 'man')
  $people['woman'] = "Grace";        // 연관 배열(key = 'woman')
?>

배열은 일반적인 변수형과는 근본이 다르다. 정수형, 실수형, 문자형과 같은 변수형은 기본적인 타입에 속하지만, 배열은 이 기본 형태의 데이터를 조금더 발전시킨 형태라고 할 수 있다. 또한, 키와 값이라는 쌍으로 이루어져 있기 때문에 일반적인 변수의 사용과는 조금은 다른 형태를 취하게 된다.

<?
  $subject = array(0 => "국어", 1 => "수학", 2 => "영어", 3 => "사회");
  $score = array('korean' => '89', 'math' => '93', 'society' => '87');
  $people = array('Betty', 'Jane', 'Steven');
?>

배열변수 '$subject' 같이 키가 숫자로 되어 있는 인덱싱 배열의 경우는 $subject[0], $subject[1] 과 같이 숫자의 첨자로 '국어', '수학' 과 같은 변수값에 접근 할 수 있다. '$score' 는 키가 문자열로 이루어져있는 연관배열은 'korean', 'math' 와 같이 문자열로 이루어진 첨자를 사용할경우엔 $score['korean'], $score['math'] 와 같은 방법으로 그 값인 89, 93 에 접근하여 사용할 수 있다. 만일 '$people' 와 같이 키를 선언하지 않은채로 데이터값만 갖는 경우에는 자동적으로 '0' 부터 차례대로 숫자키가 부여된 인덱싱 배열이 된다. 'Betty' 의 값에 접근하고자 한다면 $people['0']이 되며, 'Jane'에 접근하려고 한다면 $people['1'] 을 통해서 접근이 가능하게 된다.


배열을 사용하는 또 하나의 방법.
배열을 사용하게 될 경우에는 배열을 선언하면서, 그 값을 입력해 주어야 한다. 하지만, 그 값이 완전히 준비되어 있지 않을 경우에는 배열의 각 원소별로 값을 정해줄 수 있다.

<?
  $people[] = "Betty";
  $people[] = "Jane";
  $people[] = "Steven";
?>



배열의 배열, 다차원 배열
배열을 더 유용하게 만드는 것중 하나는 배열을 중첩하여 사용이 가능하다는 것이다. 물론 너무 많은 중첩을 하게 된다면 PHP를 해석하는 파서에 무리가 가겠지만, 적절한 중첩을 이용한 배열은 변수의 사용가능성을 수십, 수백배 배가 시켜준다. 배열을 중첩한 다차원 배열의 사용법은 일반적인 배열의 사용법과 같다. 단지, 배열의 값에 일반적인 값 대신 배열의 값이 들어간다는 것이 다를 뿐이다.

<?
  $people = array(
                 array('name' => 'Betty', 'sex' => 'female', 'age' => '24'),
                 array('name' => 'Jane', 'sex' => 'female', 'age' => '29'),
                 array('name' => 'Steven', 'sex' => 'male', 'age' => '28')
                 );
?>


위의 배열에서 steven 의 나이인 28 의 값에 접근을 하고 싶다면 $people[2]['age'] 와 같이 사용할 수 있다. 차수가 높아질수록 첨자가 하나씩 늘어나게 된다.

Posted by seanhigher

댓글을 달아 주세요

String 타입은 문자열의 집합이라고 할 수 있다. PHP 에서의 String 타입은 큰 따옴표와, 작은 따옴표의 종류에 따가 그 사용방법에 조금의 차이가 있다.


String 타입의 변수.
String 타입의 변수는 다음과 같이 선언될 수 있다.

<?
  $name = "Devist";
  $say = ' welcome to devist blog~ ';
?>


문자열 안에서 변수의 값을 출력하려면?
다양한 변수의형태를 통해서 값을 저장하고, 사용하였다. 하지만 변수라고 하는 값은 가변적으로 그 값이 출력되어 사용되어 질때 그 영향을 발휘하고, 필요성이 생기는 것이다.


큰 따옴표를 사용하는 String 변수.
큰 따옴표를 사용하는 변수안에서는 백슬래쉬 문자를 사용한 특수문자를 사용할 수 있다. PHP 는 스크립트 언어이기 때문에 HTML과 결합되어 사용되어 진다. 이렇게 HTML 태그과 결합되어 사용되면서 특수한 문자의 사용이나, 필요성이 많아지게 된다. 큰 따옴표 안에서 사용할 수 있는 특수 문자는 다음과 같다.

\n : 커서를 다음행으로 이동시킨다. 개행문자
\r : 커서를 현재 행의 맨 처음으로 이동시킨다.
\t : 커서를 탭만큼 이동시킨다.
\" : 큰 따옴표를 출력한다.
\\ : 백슬래쉬를 출력한다.
\$ : 달러문자를 출력한다.
\0 : NULL 값을 갖는다.

큰 따옴표를 사용한 스트링 변수는 그 안에서 사용된 변수의 값이 원래의 값으로 변환되어 나오게 되어 있다.

<?
  $age = 28;
  $say = "나의 나이는 $age살 입니다.";
  echo $say;
?>


위의 소스를 실행시키면 다음과 같은 결과가 나타나게 된다.

나의 나이는 28살 입니다.



작은따옴표를 사용하는 String 변수
작은 따옴표를 사용하는 변수의 경우에는 특수문자를 사용할 수 없게 된다. 큰 따옴표를 사용할때 가능하던 특수문자를 사용할 수 없지만, 특수문자들을 그대로 출력이 가능하게 된다. 하지만, 작은따옴표와 백슬래쉬의 두가지 특수문자만은 인식이 가능하다. 위의 소스를 작은따옴표를 이용하여 나타내면 다음과 같은 결과가 나타나게 될 것이다.

나의 나이는 $age살 입니다.


하지만 큰 따옴표를 사용하지 않고 작은따옴표만을 사용하여 나타내야 할 경우도 있을 것이다. 그럴 경우에는 어떻게 해야 할것인가? 스트링변수는 점 연산자형을 제공하고 있다. 각각의 문자열을 연결하기 위해 점(.) 연산자를 사용하여 이어주는 것이 가능하다.

<?
  $age = 28;
  $say = '나의 나이는'.$age.'살 입니다.';
  echo $say;
?>


스트링 변수는 문자열을 출력하기 위한 변수이기때문에 매우 중요한 변수이고, 자주 사용되어진다. 하지만, 큰 따옴표와 작은따옴표의 사용에 대해서 잘 구분하여 사용하지 않는다면 생각지도 못한 결과를 얻게 될 수도 있을 것이다.

Posted by seanhigher

댓글을 달아 주세요

프로그래밍 언어에 있어어 변수는 매우 중요한 요소이다. 변수가 없다면 프로그래밍이라는것 자체가 성립되지 않을 것이다. PHP 에서의 변수는 다른 프로그래밍 언어와는 차별된 유연성을 가진다. 이러한 사실 또한 PHP 를 매력적으로 만드는 요소이다.



이름만 봐도 변수인지 알 수 있다.
PHP 의 변수는 개발자가 아닌 어느 누가 봐도 단번에 변수 인지 알 수 있다. PHP 의 모든 변수 앞에는 '$' 표시가 포함되기 때문이다. 이름을 저장하기 위해 'name' 라는 이름을 가진 변수를 사용하고 싶다면 '$name' 라고 쓰면 된다.

<?
  $name = "무른모 공방";
  $address = "http://devist.tistory.com";
?>



아무거나 다 되는 변수!
PHP 에서의 변수 사용은 고민을 할 필요가 없다. 변수의 형태를 선언할 필요가 없기 때문이다. C 언어나 자바같은 경우는 변수를 사용하기 전에 사용하고자 할 데이터가 어떤 형태를 지니는지 곰곰히 생각해 봐야 했다. 하지만, PHP 에서는 그런 고민이나 걱정은 하지 않아도 된다. PHP 파서가 다 알아서 해주기 때문이다.

<?
  $number = 1028;
  $character = "ABC";
?>



형변환 함수? 그런거 몰라도 된다.
C나 자바같은 프로그래밍 언어에서는 문자의 형태로 받아진 숫자를 숫자의 형태로 바꾸기 위해서 다양한 함수들을 사용해야 했다. 이런 부분을 해결하기 위해 작성해야 할 코드도 적지 않은 부분을 차지하였고... 하지만, PHP 에서는 형 변환 함수에 대해서 공부해야 할 필요가 없다. 변수 자체에 형태를 선언해주지 않기 때문에 문맥의 상황에 맞추어서 자동으로 형변환이 이루어지게 된다.

<?
  $a = 100;
  $b = "이백";
  $b = 200;
  $sum = $a + $b;
?>


$a 는 100이라는 숫자를 받으므로 숫자형태의 데이터를 저장하는 변수가 된다. $b 는 "이백"이라는 문자를 받는 문자형 변수가 된다. 다음 줄에서 $b 는 200 이라는 숫자를 입력받게 된다. 200 이라는 숫자를 받았다고 해서 숫자형이라고 단정지을 수는 없기 때문에 여전히 문자형을 갖게 되지만, 다음줄에서 $b는 계산을 하기 위한 변수로 사용이 되기 때문에 그 순간부터 문자형에서 숫자형 변수로 형태가 바뀌게 되는 것이다.


PHP 언어의 변수형
PHP 에서는 변수의 형태를 파서가 자동으로 선언해주고, 변환해 주지만 어떠한 타입의 변수를 선언해 주는지에 대해서 알아볼 필요는 있다. 내가 입안에서 씹고 있는 음식이 무엇으로 만들어졌는지 모르는것과 아는 것에는 큰 차이가 있다.
boolean : true 와 false 값을 갖는 데이터 형이다.
interger : 정수의 값을 갖는 데이터 형이다. 시스템마다 저장할 수 있는 범위에 차이는 있지만, C 언어의 long 타입과 같다고 할 수 있다.
float : 부동소수값, 또는 실수의 값을 갖는 데이터 형이다.
string : 문자형태의 값을 갖는 데이터 형이다. C 나 JAVA 의 경우는 문자 하나와 문자열을 구분지어 사용하는데, PHP 에서는 문자와 문자열을 다르게 보지않고 동일한 형테의 데이터 형으로 본다.
array : 연관된 자료들의 집합을 나타낸다. C 나 JAVa 와는 다르게 한 배열에 속해있는 자료들의 형태가 같지 않아도 사용이 가능하다.
object : 오브젝트 타입의 클래스 객체를 참조하기 위한 변수 타입이다.
resource : mysql 이나 oci 와 같은 함수를 통해 연결된 데이터이터베이스 등 특별한 함수의 반환값이나, 외부 자원을 가리키는데 사용 가능한 데이터 타입이다.
null : 아무런 값도 갖지 않는 데이터 타입이다.




'Dev Center > PHP start' 카테고리의 다른 글

Arrary 타입 변수 사용하기.  (0) 2010.05.03
String 타입의 변수 사용하기.  (0) 2010.05.02
PHP 의 변수.  (0) 2010.05.01
timezone 설정하기.  (0) 2010.04.30
PHP 에 무슨 문제라도??  (0) 2010.04.29
HTML 과 PHP 함께 사용하기.  (3) 2010.04.27
Posted by seanhigher

댓글을 달아 주세요

php 에 관한 환경설정은 모두 php.ini 파일에 포함되어 있다. php.ini 파일만 잘 다룰 줄 안다면 php 를 설정하고 사용하는데는 전혀 어려움이 없을 것이다. 물론 그렇지 않아도 약간의 부담을 감수하고 사용하는데는 큰 무리가 없긴 하지만...


timezone 설정하기.
php 스크립트 중에서 시간과 관련된 'date()' 와 같은 함수를 사용할 경우 다음과 같은 메세지가 나올 경우가 있다.

Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Seoul' for 'KST/9.0/no DST' instead in /Users/seanhigher/Sites/PHPinHTML.php

어렵지 않게 짐작했겠지만, 시간과 관련된 설정이 되어 있지 않을 경우 나오는 메세지이다. 물론 자동적으로 위치를 검색해서 제대로 된 시간이 나오긴 하지만, 위와 같은 메세지는 그리 달갑지가 않다. 위의 메세지가 더이상 나오지 않게 하기 위한 방법으로는 두가지가 있는데 하나는 'date()' 함수를 사용하기전에 'date_default_timezone_set('Asia/Seoul');' 와 같이 timezone 을 설정해주는 것이다. 간단하게 해결할 수 있기는 하지만, 매번 'date()' 함수가 사용되는 페이지마다 선언한다는 것은 상당히 불필요한 작업이 될 수 있다. 두번째 방법은 'php.ini' 파일에서 설정해 주는 것이다. 첫번째 방법이 일회용이라고 하면, 두번째 방법은 한번만 수고하면 영원히 사용할 수 있는 영구적인 방법이다. 'php.ini' 파일은 php 에 관련한 환경설정들이 들어있는 환경설정 파일이다. php.ini 파일이 있는곳은 각 플랫폼마다 다르다. 하지만, phpinfo() 함수를 통해 나타난 php 의 정보중에 Configuration File (php.ini) Path 항목을 확인하면 php.ini 파일이 있는 곳을 알 수 있다.


그림1. 폴더로 이동

'/etc' 폴더의 경우 숨김 폴더로 되어 있기 때문에 파인더에서 클릭을 하여서 이동하는 방법으로는 이동이 불가능하다. 위 그림과 같이 파인더의 '이동' -> '폴더로 이동' 항목을 선택하여 '/etc' 폴더로 이동한다.


그림2. '/etc' 폴더

하지만, 아무리 찾아보아도 'php.ini 파일을 찾을 수가 없다. PHP5 버전 이후 부터는 'php.ini' 파일 대신에 'php.ini-dist', 'php.ini-production', 'php.ini.default' 와 같은 파일 이름을 사용하기도 한다. 이런 경우에는 이 파일을 'php.ini' 파일로 복사하여 사용하면 된다. 이제 준비된 'php.ini' 파일을 살펴보면 date.timezone 항목이 비어있는 것을 볼 수 있다.


그림3. php.ini 파일

위 화면의 박스안에 있는 부분에 다음의 소스를 넣으면 된다.

;date.timezone = Asia/Seoul

timezone 항목으로 들어가는 인자는 http://php.net/timezone 페이지에서 확인할 수 있다. 이제 date() 함수를 사용하여도 위와 같은 warning 메세지를 보지 않아도 될 것이다.

'Dev Center > PHP start' 카테고리의 다른 글

String 타입의 변수 사용하기.  (0) 2010.05.02
PHP 의 변수.  (0) 2010.05.01
timezone 설정하기.  (0) 2010.04.30
PHP 에 무슨 문제라도??  (0) 2010.04.29
HTML 과 PHP 함께 사용하기.  (3) 2010.04.27
eclipse에 PDT 설치하기.  (0) 2010.03.27
Posted by seanhigher

댓글을 달아 주세요

어렵게 PHP 를 설치하였다. 그런데 이상하게도 제대로 작동하지 않는 PHP 문서들... 게다가 제대로 나타나지 않는 한글들은 무슨 문제가 있어서 그런건지... PHP 를 설치한 후에 제대로 사용하기 위해서는 기본적으로 해 주어야 별 문제없이 사용할 수 있는 설정들이 있다.


꼭 확장자를 .php로만 해야 하는걸까?
스크립트 언어인 PHP 는 HTML 태그안에 포함되는 형태로 사용된다. php 파서는 HTML 문서내의 php 소스가 들어간 부분의 태그를 보고, 그것이 PHP 스크립트라고 생각하고 해석을 시작하게 되는 것이다. 그래서 사실 확장자가 html 이던 php 이던 똑같을 수 밖에 없는 것이다. 단지 주로 쓰여진 부분이 어떤 것인가, 또는 개발자의 스타일에 전적으로 맡겨질 수 밖에 없는 부분이다. 하지만, 분명 phpinfo() 함수가 실행되는것을 봐서는 문제업이 PHP 가 설치되었는데, 확장자를 html 로 하였을때는 실행이 되지 않는 경우가 있다. 이것은 아파치 서버에서 PHP 모듈이 읽을 수 있는 문서에 html이 포함되어 있지 않기 때문이다.


확장자가 html 일때도 php 스크립트가 실행되도록 하기.
PHP 는 아파치 서버에 모듈 형태로 작동하기 때문에 PHP 모듈이 어떤 문서를 인식하는지를 설정하기 위해서는 아파치의 설정 파일인 'httpd.conf' 파일을 수정해야 한다.


그림1. 폴더로 이동


그림2. /etc 폴더

먼저 파인더를 실행한 후 '이동' -> '폴더로 이동' 을 선택하여 '/etc' 폴더로 이동한다. /etc 폴더는 'HardDisk \ private \ etc' 에 위치해 있지만, 중요한 파일들이 많이 있는 숨김 폴더이기 때문에 마우스를 클릭하여 이동하는 방식으로는 접근이 불가능하다. '\etc' 폴더 아래에 있는 'apache2' 폴더를 보면 우리가 찾는 'httpd.conf' 파일이 있는것을 볼 수 있다. 이 파일을 열어서 html 문서도 php 파서가 읽어들일 수 있돌고 설정을 해주어야 한다.


그림3. 설정 추가

위 그림처럼 빨간 네모에 있는 내용을 추가하면 된다. 꼭 위 화면에 나온 위치가 아니라도 상관없다. 자신이 원하는곳에 써 넣도록 한다.

# And for PHP 5.x use:
#
AddType application/x-httpd-php .php .phtml .php5 .html


x-httpd-php 다음에 나오는 확장자를 가진 문서들을 php 파서가 인식하도록 하는 것이다. 확장자 앞에 닷(.)을 빼먹지 말고 써넣어야 한다. 위의 소스를 입력하였다면 저장을 하고 아파치 서버를 다시 시작하면 html 확장자를 가진 문서에서도 문제없이 php 스크립트가 작동되는 것을 볼 수 있을 것이다.

'Dev Center > PHP start' 카테고리의 다른 글

PHP 의 변수.  (0) 2010.05.01
timezone 설정하기.  (0) 2010.04.30
PHP 에 무슨 문제라도??  (0) 2010.04.29
HTML 과 PHP 함께 사용하기.  (3) 2010.04.27
eclipse에 PDT 설치하기.  (0) 2010.03.27
PHPeclipse 설치하기.  (2) 2010.03.15
Posted by seanhigher

댓글을 달아 주세요

PHP 는 PHP 이고 HTML 은 HTML 인데... 이 둘을 함께 사용하려면 어떻게 해야 할까? PHP는 ASP, JSP와 같은 스크립트 형태의 언어이기 때문에 HTML 태그에 내장되는 형태로 사용이 된다. PHP를 선언하는 태그를 HTML 문서에 포함시킨후, 태그 안에 PHP 소스를 넣으면 된다.



PHP임을 알리는 HTML 태그.
HTML 문서에 PHP임을 알리는 태그는 매우 간단하다. '<?php ?>' 또는 '<? ?>' 이다. 가운데 빈 공간에 PHP 스크립트 코드를 써 넣으면 되는 것이다. 사실 HTML 문서나, PHP 문서나 똑같은 웹 문서일 뿐이다. 확장자의 이름만 다를 뿐이다. HTML 과 PHP 문서를 구분짓는 것은 그 안에 사용되는 태그를 어떻게 사용하느냐이다. 확장자명을 PHP로 한다고 할찌라도 일반적인 HTML 태그를 사용한 소스만을 사용한다면 HTML 문서와 똑같이 작용할 뿐이다. 그렇기 때문에 PHP 로 시작하는 문서는 보통 '<?' 로 시작하게 된다.


HTML 문서안에 PHP 포함시키기.
HTML 문서에 PHP 소스를 포함시키기 위해서는 '<? ?>' 태그안에 PHP 소스를 작성하면 된다.

<PHPinHTML.html>
<HTML>
  <HEAD>
    <TITLE>HTML 안에 PHP</TITLE>
  </HEAD>
  <BODY>
    지금 시간은 <b> <? echo date("Y-m-d H:i:s") ?> </b> 입니다.
  </BODY>
</HTML>


'echo' 는 C 언어의 printf문과 같은 역할을 한다. 다음에 나오는 인자를 화면에 출력해주는 역할을 한다. date() 함수는 현재의 날짜, 시간을 출력해주는 함수이다. 위의 'PHPinHTML.html' 문서를 실행하면 다음과 같은 결과가 나오게 된다.


그림1. HTML 안에 PHP

Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Seoul' for 'KST/9.0/no DST' instead in /Users/seanhigher/Sites/PHPinHTML.php on line 8

만약 위와 같은 warning 메시지를 보게된다면 타임존이 설정되지 않은것이다. 아래와같이 타임존을 설정해주는 소스를 추가해주면 에러메세지가 사라질 것이다.

<PHPinHTML.html>
  <HEAD>
    <TITLE>HTML 안에 PHP</TITLE>
    <? date_default_timezone_set('Asia/Seoul'); ?>
  </HEAD>


PHP 문서안에 HTML 포함시키기.
반대로 PHP 문서안에 HTML 태그를 포함시킬 수 도 있다. PHP 는 이렇게 유연한 방식으로 개발자들을 대하기 때문에 개발자의 사용습관에 따라 편한대로 사용할 수 있다. PHP 문서안에 HTML 태그를 포함시키기 위해서는 'echo' 함수를 사용할 수 있다. echo 는 C 에서의 printf 문과 마찬가지로 이후의 내용을 출력하는 역할을 하기 때문에 echo 의 인자로 HTML 태그를 포함시킴으로 HTML 태그를 표현할 수 있게 된다.

<HTMLinPHP.php>
<?
  echo "<HTML><HEAD><TITLE>PHP 안에 HTML</TITLE></HEAD>
  <BODY>지금 시간은 <b>";
  echo date("Y-m-d H:i:s");
  echo "</b> 입니다.</BODY></HTML>";
?>


위의 소스코드를 실행하면 'PHPinHTML.html' 문서를 실행한것과 같은 결과를 보게 될 것이다.


그림2. HTMLinPHP.html

PHP 를 사용하는 방법은 다양하다. 하지만 다양하다고 해서 편하다는 것은 아니다. 분명, 일반적인 위지윅 방식의 HTML 편집기와 함께 사용하려고 한다면 어려움이 있기 마련이다. 하지만 이런 문제를 단번에 해결하면서도 좀더 효율적으로 PHP 소스를 활용할 수 있는 방법이 있다. include() 함수가 그 방법이다!


통째로 포함시키기.
수십페이지에 달하는 웹 페이지를 제작하려고 하는 개발자가 있다. 하지만, 모든 페이지가 대부분 같은 폼을 가지고 있다. 똑같은 작업을 수십번 반복해야 하는 것이다. 만들때는 새로 만들어서 복사하면 된다고 하지만, 수정을 해야 할때는 대책없이 수십개의 문서를 일일이 수정해 주어야 한다. 이럴때, 템플릿을 활용하면 훨씬 수월하게 작업을 하고, 웹페이지 유지보수를 할 수 있다. 똑같은 형식을 갖는 부분을 템플릿으로 만들고 수십개의 문서에 그것을 포함시키는 형식으로 적용을 시키는 것이다. 수정을 할 때는 템플릿만 수정을 하게 되면 모든 템플릿을 포함한 모든 문서에 똑같이 적용이 되는 것이다.


그림3. 템플릿의 활용

템플릿은 HTML 문서로 작성하여도, PHP 문서로 작성하여도 무방하다. 템플릿 문서를 포함하고자 하는 문서에 '<? include "템플릿 문서"; ?>' 와 같은 형식을 취하면 된다.

<TimeTemplate.php>
<?
  echo "지금 시간은";
  echo date("Y-m-d H:i:s");
  echo "입니다";
?>

<documentA.html>
<HTML>
  <HEAD>
    <TITLE>템플릿의 활용</TITLE>
  </HEAD>
  <BODY>
  <? include "TimeTemplate.php"; ?>
  </BODY>
</HTML>


위의 두개의 파일을 실행하면 다음과 같이 실행되는 것을 알 수 있다.


그림4. documentA.html (include TimeTemplate.php 포함)

위에서 설명한 예제는 간단하지만, 좀더 큰 규모의 웹 페이지를 제작하게 될 경우에 템플릿을 사용하여 효율성을 극대화 하는 것은 꼭 필요한 기능이다.



'Dev Center > PHP start' 카테고리의 다른 글

PHP 의 변수.  (0) 2010.05.01
timezone 설정하기.  (0) 2010.04.30
PHP 에 무슨 문제라도??  (0) 2010.04.29
HTML 과 PHP 함께 사용하기.  (3) 2010.04.27
eclipse에 PDT 설치하기.  (0) 2010.03.27
PHPeclipse 설치하기.  (2) 2010.03.15
Posted by seanhigher

댓글을 달아 주세요

  1. 2010.04.28 00:54  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  2. 2015.12.31 22:34 신고 소울라이어  댓글주소  수정/삭제  댓글쓰기

    제가 개념이 없어서 그러는데요.
    티스토리 블로그에 글쓰기를 한다음 HTML모드에서 이 코드를 적으면요
    <HTML>
    <HEAD>
    <TITLE>HTML 안에 PHP</TITLE>
    </HEAD>
    <BODY>
    지금 시간은 <b> <? echo "ㅇㅇㅇㅇㅇㅇㅇ"; ?> </b> 입니다.
    </BODY>
    </HTML>

    안나오는게 정상인가여?

절대적인 자바 개발툴로 사랑을 받고 있는 이클립스. 그렇다면 이클립스에서는 자바 개발만 할 수 있는 것일까? 다양한 플러그인으로 무장한 이클립스에 대해 그런 생각을 가지고 있다면 굉장한 오산이다. 이클립스 자체가 플러그인으로 이루어져 있을만큼 다양한 플러그인으로 변경이 가능하기 때문에, 어떠한 언어에도 완변하게 대응할 수 있다. 그에 걸맞는 플러그인만 가지고 있다면...


PDT(PHP Development Tool)
이클립스에서 웹 개발, 특히 PHP를 개발하기 위해서는 그에 걸맞는 설정이 필요하다. 그리고 이미 준비가 되어 있다. 기본적으로 eclipse JEE 버전을 받으면 웹 개발에 필요한 대부분의 기능을 사용할 수 있지만, 이클립스 자체가 통합적인 업데이트가 이루어지기 때문에, 웹 개발을 위해서라면 웹 개발 부분의 기능을 향상시켜주는 업데이트를 하고, 더 나은 플러그인을 설치해주는 것이 좋다. 특히  PDT는 PHP 개발자들을 위해 특화된 플러그인이라고 할 수 있고, 공식적인 플러그인이기 때문에 매우 안정적이다.


이클립스에 PDT 플러그인 설치
처음으로 이클립스를 실행하게 되면, 개발 환경을 나타내는 퍼스펙티브가 설치 버전에 따라 Java, JEE, 등으로 되어 있을 것이다. 여기에 PDT를 설치하여 PHP 개발에 최적화된 퍼스펙티브를 추가할 수 있다.


그림1. 새로운 플러그인 설치.

메뉴바에서 'HELP' -> 'Install New Software...'를 선택한다. 이클립스에서는 '플러그인 설치' 라는 메뉴 대신에 '새로운 소프트웨어 설치'라는 항목을 사용하고 있다.


그림2. 사이트 추가.

위의 화면과 같은 창이 나오게 되면 오른족 부분에 'Add...' 버튼을 눌러서 'Add Site'라는 창이 나오면, 설치 파일을 제공하는 사이트의 URL을 입력하도록 한다. PDT를 다운로드 받을 수 있는 URL은 'http://download.eclipse.org/tools/pdt/updates/2.0/'이다. 이름부분에는 자신이 알아볼 수 있도록 아무 이름이나 사용해도 상관 없다. 이클립스에서는 위와 같이 사이트에서 직접 파일을 다운로드 하여 설치할 수 있돌고 제공하고 있지만 인터넷 접속이 어려울 경우 직접 파일을 다운로드 받아 설치 할 수 있는 방법도 가능하다. 'Add Site'창에서 'Local'버튼을 클릭하여 다운로드 받은 파일이나 폴더가 있는 위치를 지정해 주면 동일하게 진행 할 수 있다.


그림3. 설치 가능한 플러그인.

설치 사이트를 입력하고 'OK' 버튼을 누르면 자동으로 설치 가능한 플러그인들을 검색해준다. 위 그림에서는 PDT SDK 2.0.1 버전과 PDT SDK 2.1.2 버전이 나오게 되는데 둘중 하나만 선택하여 설치하도록 한다. 만약 두개를 다 선택하면 플러그인끼리 충돌이 일어나서 설치가 이루어지지 않기 때문에 비슷한 플러그인의 경우엔 한가지만 설치하도록 한다.


그림4. 라이센스 동의.


그림5. 설치 진행 화면


그림6. 이클립스 재시작.


그림7. 퍼스펙티브 추가

설치가 완료 되었다고 해서 PDT를 바로 사용할 수 있는 것은 아니다. PHP퍼스펙티브를 추가해 주어야 사용이 가능한 상태가 된다. 이클립스의 오른쪽 윗 부분에 있는 빨간네모와 같은 그림을 클릭하면 위와 같은 메뉴를 볼 수 있게 된다. 기본으로 PHP가 없기 때문에 'Other...'을 선택하여 추가해야 한다.


그림8. PHP 퍼스펙티브 선택

위와 같이 메뉴가 나오면 PHP를 선택하여 PHP퍼스펙티브를 추가할 수 있다.


그림9. PHP Project 메뉴가 추가된 화면

이제 매인 화면으로 돌아가 새로운 프로젝트를 생성해보자. 위의 그림과 같이 'PHP project'라는 새로운 메뉴가 생긴것을 볼 수가 있다.

이클립스의 다양한 플러그인을 설치하는 방법은 위의 방법과 거의 동일하다. 플러그인 파일을 다운로드 받거나, URL을 입력하여 설치하면 된다. 자신이 사용하기에 가장 알맞고, 최적화된 자신만의 이클립스를 만들 수 있을 것이다. 또, 그것이 너무 효율적이라면 다른사람에게 소개하는 아량을 베푸는 것도 좋을 것이다.

'Dev Center > PHP start' 카테고리의 다른 글

PHP 의 변수.  (0) 2010.05.01
timezone 설정하기.  (0) 2010.04.30
PHP 에 무슨 문제라도??  (0) 2010.04.29
HTML 과 PHP 함께 사용하기.  (3) 2010.04.27
eclipse에 PDT 설치하기.  (0) 2010.03.27
PHPeclipse 설치하기.  (2) 2010.03.15
Posted by seanhigher

댓글을 달아 주세요

eclipse는 강력한 프로그래밍 언어 저작도구이다. 특히 Java 개발자들을 통해서 많이 알려지게 되었다. 이클립스의 장점인 다양한 plug-in을 통한 무한한 기능의 확장은 프로그래머들이 더욱더 편안하게 개발에 집중할 수 있도록 돕고 있다. 웹 스크립트 언어인 PHP를 개발할 수 있는 플러그인 역시 지원하고 있는데 'PHPeclipse'이다.



PHPeclipse?
이클립스에서 PHP 프로그래밍을 할 수 있도록 돕는 플러그인인 PHPeclipse는 Trac open source project를 통해서 만들어졌다. Trac은 쉬운 사용에 초점이 맞추어진 웹기반의 소프트웨어 프로젝트 관리도구이며 버그/이슈 트랙킹 시스템이다. PHPeclipse는 PHP뿐만 아니라, XAMPP를 사용하여 웹서버, 데이터베이스등을 손쉽게 사용할 수 있게끔 만들어준다. 또한 X-debuger는 잘못된 프로그램을 개선할 수 있는 여지를 제공한다. 이클립스가 그렇듯, PHPeclipse 역시 작은 플러그인의 모음인 것이다.


PHPeclipse 설치하기.
먼저 이클립스가 설치되어 있어야 PHPeclipse를 설치할 수 있다. 이클립스는 다양한 플로그인을 지원하기 때문에, 웹사이트에서 플러그인을 다운로드 받아 설치 할 수 있는 메뉴를 제공하고 있다. 하지만 온라인이 아닌 오프라인으로도 충분히 설치가 가능하다.


그림1. 이클립스에서 플러그인 설치.

이클립스의 메뉴에서 Help -> Install New Software... 를 선택한다.


그림2. 플러그인 항목 추가.

한번 온라인을 통해서 설치를 하게된 플러그인에 대해서, 지속적인 업데이트가 되도록 플러그인 항목을 등록하게 되어있다. 'Add' 버튼을 눌러서 PHPeclipse의 플러그인 항목을 등록한다. Name 항목에는 사용자가 알아 볼 수 있는 적당한 이름을 적어놓고, Location 항목에는 업데이트가 가능한 플러그인의 업데이트 url을 입력한다. PHPeclipse를 설치하기 위해서는 'http://update.phpeclipse.net/update/stable/1.2.x'를 적어 넣는다.


그림3. 가능한 플러그인 검색.

이클립스에서 자동으로 플러그인을 업데이트 항목으로 검색을 하여 보여준다. 업데이트 하고자 하는 항목을 체크하고, 설치를 진행한다.


그림4. 플러그인 설치항목


그림5. 라이센스 동의.


그림6. 설치 진행 화면


그림7. 설치 완료

간단하게 라이센스를 동의하고나고 설치를 진행하면 별 무리 없이 설치가 진행된다. 도중에 메시지가 나오더라도 무시하고 진행하도록 한다. 설치가 완료된 후에는 이클립스를 재시간해야지 PHPeclipse를 실행할 수있으므로 'Yes'를 눌러서 재시작 하도록 한다.


PHP perspective.
PHPeclipse를 설치하였다면, 그것을 사용하기 위해 PHP 퍼스펙티브로 변경을 해야 한다. 이클립스에서는 퍼스펙티브를 통해서 플러그인을 사용할 수 있도록 지원하고 있다. 아무리 플러그인을 설치했다고 해서 설정을 해주지 않는다면 사용할 수 없다.


그림8. 퍼스펙티브 선택

이클립스를 보면 오른쪽 윗 부분이 퍼스펙티브를 선택하는 부분이다. 자신이 선택하여 설치한 퍼스펙티브가 기본으로 설정되어 있을 것이다. 그림에서는 'Java EE'가 기본 퍼스펙티브이다. 다른 퍼스펙티브로 변경하기 위해서 빨간 사각형으로 선택되어 있는 부분을 선택하면 다른 퍼스펙티브를 선택할 수 있는 메뉴가 나오는데 PHP는 없다. 하지만, 'Other'를 선택하면 더많은 다른 퍼스펙티브 메뉴들이 나온다.


그림9. 퍼스펙티브 선택.


그림10. PHP 퍼스펙티브 화면.

이제 이클립스를 가지고 PHP를 개발할 준비가 되어 있다. 이제 새 프로젝트를 생성하여 멋지고 효율적인 웹 프로젝트를 제작할 수 있다.

'Dev Center > PHP start' 카테고리의 다른 글

PHP 의 변수.  (0) 2010.05.01
timezone 설정하기.  (0) 2010.04.30
PHP 에 무슨 문제라도??  (0) 2010.04.29
HTML 과 PHP 함께 사용하기.  (3) 2010.04.27
eclipse에 PDT 설치하기.  (0) 2010.03.27
PHPeclipse 설치하기.  (2) 2010.03.15
Posted by seanhigher

댓글을 달아 주세요

  1. 2010.03.29 11:06 강뽕  댓글주소  수정/삭제  댓글쓰기

    덕분에 순조롭게 설치를 완료하였습니다.
    글내용 많이 참조할게요^^

최근에 달린 댓글

글 보관함