반응형

지원 OS : Win32 & Linux

개발환경 : Javascript

사용제한 : 없음

제작자 : outmind@cafen.net

자료설명 :
 
* 플레쉬 차트 (Open Flash Chart2 with JS)
*
* @author Kimjonggab outmind@cafen.net
* @copyright Copyright (c) 2004 Cafen.net (http://cafen.net)
* @license http://opensource..org/licenses/gpl-license.php GNU General Public License (GPL)
 

* 참조 URL 1 : http://openapi2.cafen.net
* 참조 URL 2 : http://service2.cafen.net/example/chart2.html
* 참조 URL 3 : http://teethgrinder.co.uk/open-flash-chart-2/
 
* 적용 방법 (플레쉬 차트)
<script>var cafenGlobalConf = {scripturl : 'http://service2.cafen.net/'}</script>
<script type="text/javascript" src="http://service2.cafen.net/cafenOFC2JS.js" charset=utf-8></script>
<table class='sampeChart' title='Line Chart' title_style='font-size:14px' y_legend='1/100' x_legend='Month' border=0 width=800 height=400 bgcolor=#f5f5f5  wmode='transparent' >
    <tbody>
        <tr type='xy_axis' colour=#8c8c8c grid_colour=#d5d5d5  stroke=2 min=0 max=25 step=4 rotate=45 size='12' font_colour='#000000'>
            <td></td>
            <td>Jan</td>
            <td>Feb</td>
            <td>Mar</td>
            <td>Apr</td>
            <td>May</td>
            <td>Jun</td>
            <td>Aug</td>
            <td>Sep</td>
        </tr>
        <tr type='line' colour=#5aa775 stroke=2 line='dotted' pointer='star' pointersize=10 tooltip="Visitor of #x_label#(#val#)  ">
            <td>Visitor</td>
            <td>20</td>
            <td>17</td>
            <td>18</td>
            <td>9</td>
            <td>20</td>
            <td>17</td>
            <td>18</td>
            <td>9</td>
        </tr>
    </tbody>
</table>
 
<script>
onload = function() { 
    var ofc2js = new cafenOFC2JS(); 
    ofc2js.renderElementsByClassName('sampeChart'); 

</script>   

기타 문제점을 발견하신분은 outmind@cafen.net 으로 연락 주시기 바랍니다.




출처 : http://phpschool.com/gnuboard4/bbs/board.php?bo_table=download&wr_id=16362&page=2
반응형

'Language > PHP' 카테고리의 다른 글

정규표현식 테스트 필요할 때 보조 프로그램  (0) 2010.01.19
PHP 정규표현식  (0) 2010.01.18
eclipse 설정: Xdebug로 디버깅하기 with XAMPP 서버  (2) 2009.12.28
XAMPP 설치 가이드  (0) 2009.12.28
xampp  (0) 2009.12.28
반응형

지원 OS : windows 계열

개발환경 : 델파이

사용제한 : 프리웨어

제작자 : 김기수 ( kikisu@kikisu.com)

자료설명 :

Php, c#, 자바, 자바스크립트 이것저것 하다보니 정규표현식 쓸일이 많아 제작하게 되었습니다.

기존에 외국 프로그램으로 테스트 하던중 컴텨가 포맷되어 잘쓰던 프로그램이 날았더군요

다시 외국사이트 갔는데 프로그램명을 몰라 찾는데 실패하여 그냥 제 입맛대로 델파이로
하나 맹글었습니다.  Exe 파일 다운받아 바로 실행하면 됩니다.
저는 6개월동안 고놈 잘써먹고 있는데 도움이 될지는 모르겠습니다.

정규표현식중 기본적으로 자주 쓰는 것은 이곳저곳에서 주워담아서 넣어놨습니다.
삭제는 파일만 삭제하면 되므로 쓰실분은 잘 쓰세요

출처 : http://phpschool.com/gnuboard4/bbs/board.php?bo_table=download&wr_id=16604&page=1


이클립스 사용하시면 관련 plug-in이 있습니다.
QuickREx
Regex Uti

http://www.gskinner.com/RegExr/ 여기도 강추 입니다~~

http://www.editpadpro.com/ 이것도 강추합니다... l
반응형

'Language > PHP' 카테고리의 다른 글

플레쉬 차트 (OFC2JS) - Table2Chart  (0) 2010.01.19
PHP 정규표현식  (0) 2010.01.18
eclipse 설정: Xdebug로 디버깅하기 with XAMPP 서버  (2) 2009.12.28
XAMPP 설치 가이드  (0) 2009.12.28
xampp  (0) 2009.12.28
반응형

정규표현식

출처: 이승혁,「PHP웹프로그래밍가이드」(서울:마이트Press) 2000, pp. 178-182.

정규표현식의 규칙

문자열 패턴을 표현하기 위해 정규 표현식 함수와 함께 사용되는 특수 문자들이 있다. 정규 표현식에 사용되는 이 특수 문자들의 사용법을 먼저 알아보도록 하자

패턴 표현에 사용되는 특수 문자

정규 표현식에서 패턴을 표현하기 위해 사용하는 특수 문자와 규칙은 다음과 같다.

  1. '.' 특수문자

    '.'은 어떤 문자이건 간에 임의의 한 글자를 나타낸다. 예를 들면, 패턴 a.c는 어느 한 문자의 앞 문자가 a이고 뒷 문자는 c인 모든 문자열을 포함한다. 따라서 aac나 abc, acc는 이 패턴에 일치되는 문자열이다. 그러나 .은 반드시 임의의 한 글자만을 대신하기 때문에 a로 시작해 c로 끝나는 문자열 중 두 글자뿐인 ac나 abbc는 이 패턴에 포함되지 않는다.

    사용예 내용 해당 문자열
    s.e s와 e사이에 임의의 한 글자를 갖는 문자열과 일치한다. sae, sbe, sce, sde, …
    .ce ce 앞에 임의의 한 글자를 갖는 문자열과 일치한다. ace, kce, fce, …

     

  2. '*' 특수문자

    '*'는 바로 앞의 문자를 의미하며 그 문자가 없거나 하나 이상임을 나타낸다. 위의 '.'이 그 자체로 임의의 한 글자만을 의미하는 데 반해 '*'는 바로 복수 개의 문자를 나타낼 수 있다. 대신 '*' 앞에는 반드시 문자가 하나 이상 있어야 한다. 만일 "*e"와 같이 '*' 앞에 문자가 없으면 잘못된 패턴으로 인식해 에러가 발생한다.

    사용예 내용 해당 문자열
    s*e e 앞에 s가 없거나 하나 이상 존재하는 모든 문자열을 나타낸다. e, se, sse, ssse, …
    abc* ab 다음에 c가 없거나 하나 이상 존재하는 모든 문자열을 나타낸다. ab, abc, abcc, abccc, …
    h*im im 앞에 h가 없거나 하나 이상 존재하는 모든 문자열을 나타낸다. im, him, hhim, hhhim, …

     

  3. '+' 특수문자

    '+'는 바로 앞의 문자를 의미하여 그 문자가 하나 이상임을 나타낸다. '*'와 마찬가지로 앞에 한 문자가 있어야 하며 이 문자가 최소 하나 이상 존재하는 모든 문자열을 포함한다.

    사용예 내용 해당 문자열
    s+e 문자 e앞에 s가 최소한 하나 이상 존재하는 모든 문자열을 나타낸다. se, sse, ssse, sssse, settle, …

     

  4. '?' 특수문자

    '?'는 바로 앞의 문자가 없거나 혹은 있음을 나타낸다. 예를 들면, s?e는 '?' 앞의 문자 s가 없거나 하나 존재하는 문자열 e나 se를 포함한다.

    사용예 내용 해당 문자열
    th?e t와 e사이에 h가 하나 있거나 혹은 없는 문자열과 일치한다. te, the, their, lotte, …

     

  5. '^' 특수문자

    '^'는 바로 뒤의 문자열을 기준으로 이것과 동일한 문자열로 시작되는 것을 가리킨다.

    사용예 내용 해당 문자열
    ^The The로 시작하는 모든 문자열을 나타낸다. The girl is beautiful!, Theater, …
    ^a?bc bc나 abc로 시작하는 모든 문자열을 나타낸다. bc++ 3.0, abcdef), …
    ^.e e 앞에 한 글자가 존재하는 문자열로 시작하는 모든 문자열을 나타낸다. he, me, request, settle, …
    ^s.e? s와 임의의 한 문자로 시작하고 그 뒤에 문자 e가 하나 있거나 혹은 없는 문자열을 나타낸다. sa, sae, sb, sbe, …

     

  6. '$' 특수문자

    '$'는 문자열의 맨 마지막을 가리킨다.

    사용예 내용 해당 문자열
    a?bc$ bc로 끝나는 문자열 앞에 문자 a가 없거나 하나 존재하는 문자열과 일치한다. eeabc, seebc, bc, …
    t.e$ t와 임의의 한 글자, 그리고 그 다음에 e로 연결되어 끝나는 문자열과 일치한다. onthetoe, bctae, appetitte, …
    s?e+$ 첫 글자는 s나 e로 시작하고 하나 이상의 e로 끝나는 문자열과 일치한다. e, se, ee, eee, see, seee, …
    ^the$ the로 시작해서 the로 끝나는 문자열과 일치한다. 즉, 이 경우는 문자열 자체가 the뿐인 경우에만 일치한다. the

     

  7. '[]' 특수문자

    각괄호 []는 [] 안에 있는 문자열 중에서 하나의 문자만을 의미한다. [] 안에서 범위를 지정할 때는 '-' 문자를 사용한다. 즉, [a-d]는 [abcd]와 동일하며 [0-9]는 [0123456789]와 같은 의미이다.

    사용예 내용 해당 문자열
    [ab]cd acd 또는 bcd를 포함하는 문자열과 일치한다. acd, tacde, "bcd", "tbcde", …
    ^[ab]cd acd 또는 bcd로 시작하는 문자열과 일치한다. acds, bcdt, acdsee32, …
    [a-z] 영문 소문자 한 글자를 포함하는 문자열과 일치한다. a0c2ds, ta123cde, Student, …
    [a-zA-Z] 영문 소문자나 대문자 한 글자를 포함하는 문자열과 일치한다. LINUX, 386AT, …
    [0-9] 십진수 한 자를 포함하는 문자열과 일치한다. a0c2ds, ta123cde, 386, …
    ga[a-z] 하나의 영문 소문자 앞에 ge를 갖는 문자열과 일치한다. LINgazUX, gazzett, …
    ^ab[ce]ef abcef 또는 abdef로 시작하는 문자열과 일치한다. abcef0z, abdef386, …
    ^[a-zA-Z] 영문자로 시작하는 모든 문자열과 일치한다. LINgazUX, abcef0z, …
    [a-z]+ 영문소문자 한 자 이상을 갖는 문자열과 일치한다. tgabcabcef, MySQL, …
    [aA][bB] ab, aB, Ab, AB를 포함하는 문자열과 일치한다. 386ABIT, abcef0z, tgabcabcef, …
    ,[a-zA-Z0-9]$ 콤마와 하나의 영문자 또는 숫자로 끝나는 문자열과 일치한다. abdef38,6, 199,2, …

     

    만일 원하지 않는 문자를 제외한 나머지 문자를 가리킬 때에는 []안의 첫 문자로 '^'를 사용한다.

    사용예 내용 해당 문자열
    [^ab]cd acd와 bcd를 제외하고는 패턴 .cd와 같다. 즉, cd앞에 a나 b를 제외한 하나의 문자를 포함하는 문자열과 일치한다. ccd, scd, 018cd, tgcdcdabcef, gazcd18, …
    s[^ab]t sat와 sbt를 제외하고는 패턴 s.t와 같다. 즉, t 앞에 a나 b를 제외한 임의의 한 문자와 그 앞에 s가 있는 문자열과 일치한다. sct, sdt, tgcdsctda28, settle, …
    [^a-z] 영문 소문자를 제외한 한 글자를 포함한 문자열과 일치한다. MySQL, 386sAB,IT, abcef0z, 199,2, …
    [^a-zA-Z] 영문자를 제외한 한 글자를 포함하는 문자열과 일치한다. 286sAB,IT, gazscd18, abcef0z, 199,2, …
    [^0-9] 숫자를 제외한 한 글자를 포함하는 문자열과 일치한다. settle, gazscd18, LINUX, …

     

  8. '{}' 특수문자

    중괄호 {}는 {} 앞에 있는 문자나 문자열의 개수를 결정한다.

    사용예 내용 해당 문자열
    a{2}b aab를 가진 문자열과 일치한다. 즉, {2}는 {}앞에 있는 문자 a의 개수가 2개임을 의미한다. aab, …
    a{2,}b a의 개수가 최소한 2개 이상인 문자열을 포함하는 문자열과 일치한다. aab, aaab, aaaab, …
    a{1,3}b b앞에 1개부터 3개까지의 a를 갖는 문자열을 포함하는 문자열과 일치한다. ab, aab, aaab, …

     

  9. '()' 특수문자

    둥근괄호 ()는 () 앞에 있는 글자들을 그룹화 한다.

    사용예 내용 해당 문자열
    a(bc){2} a뒤에 bc의 개수가 두 개인 문자열 abcbc를 포함하는 모든 문자열과 일치한다. [bc]가 b 또는 c중 하나를 의미하는 것에 비해 (bc)는 bc를 하나의 그룹으로 처리한다. docabcbctor, tabcbc++, …
    a(bc)* a뒤에 bc가 없거나 하나 이상인 문자열과 일치한다. sea, abcd, abcbcbcbc, …

     

  10. '|' 특수문자

    '|'는 OR 연산자이다.

    사용예 내용 해당 문자열
    he|she he나 she를 포함하는 문자열과 일치한다. he is handsome, she's gone, …
    (he|she)is is 앞에 he나 she를 포함하는 문자열, 즉 heis나 sheis를 포함하는 모든 문자열과 일치한다.  
    (le|li)*ft ft 앞에 le나 li가 없거나 하나 이상인 문자열과 일치한다. mlefto, lft, lelift, fclelelilefte, …
    mo(no)+ mo뒤에 no가 하나 이상인 문자열과 일치한다. mono, monono, mononono, acmonoe, …

     

문자 클래스(character class)

패턴을 [a-z]나 [A-Z], [0-9]로 표현하는 대신 다음과 같이 문자 클래스(character class)로 간단하게 표현할 수도 있다.

  • [[:alpha:]] : 알파벳 문자 중 하나를 의미하며 [a-zA-Z], 또는 [a-Z]와 동일한 표현이다.
  • [[:digit:]] : 숫자 한 자를 의미하며 [0-9]와 동일한 표현이다.
  • [[:alnum:]] : 알파벳 문자나 숫자 중 하나를 의미하며 [a-zA-Z0-9]와 동일한 표현이다.
  • [[:space:]] : 공백 문자 ( )를 의미한다.

정규 표현식에서 특수 문자의 표현

지금까지 정규 표현식에서 사용한 여러 특수 문자를 특수 문자가 아닌 그 문자 자체의 의미로 사용하려면 특수 문자 앞에 역슬래시('\') 문자를 붙여 escape시켜야 한다. 정규 표현식에서 escape시켜야 하는 특수 문자로는 다음과 같은 것들이 있다.

^ . [ ] $ ( ) | * + ? { } \

 

  • \*+ : 문자 '*'이 하나 이상 포함된 모든 문자열과 일치한다. 이것은 정규 표현식에서 사용하는 특수문자 '*'를 '\*'와 같이 escape시킴으로써 문자열에서 '*'가 포함된 문자열을 찾는다.
    예) *notice***, dictsh*eionary
  • \[RE:[1-9][0-9]*\] : "["와 "RE:", 그리고 0을 제외한 하나의 숫자와 0 또는 하나 이상의 0을 포함한 숫자, 그리고 "]"를 순서대로 포함하는 모든 문자열과 일치한다. 즉, 이는 게시판에 답장 글을 올릴 때의 "[RE:12]"와 같은 패턴을 의미한다.
    예) [RE:9], [RE:21]*eionary
  • [*\/+?{}.] : "*"나 "\", "/", "+", "?", "{", "}", "."중 하나를 포함하는 모든 문자열과 일치한다. 특수문자 []안에서는 위의 경우와 달리 예외가 적용된다. 즉, []안에서는 특수 문자를 문자 자체로 표현하기 위해 해당 문자를 별도로 escape시키지 않아도 된다.
    예) [RE:21]*eionary, turboc++, ce{le}brity, hello?, ac/monoe


출처 :

반응형
반응형

PHP로 개발하는데, 혹시 디버깅(debugging)이라는 '용어'를 들으면 print_r()이나 var_dump() 함수가 가장 먼저 떠오르나? 그럼, 뭔가(?) 몹시 외롭게 사투하는 중일 가능성이 높다. PHP에서도 breakpoint를 설정해가면서 진짜 디버깅을 할 수가 있다. 이 대목에서 잠깐, breakpoint가 뭘까? 고개를 갸우뚱하는 사람은 정말 너무 오랫동안 PHP로 웹 개발만, 그것도 다른 개발자들과 담을 쌓고 혼자 살아왔을 가능성이 농후하다. 물론, 가난한 개발자여서 인터랙티브 디버깅(interactive debugging)이 가능한 Zend Studio와 같은 비싼 툴을 살 수가 없었기 때문일 수도 있다. 하지만 관심을 가지고 찾아봤으면 Zend Studio 외에도 삽질만 쫌 하면 구해서 쓸 수 있는 무료 툴들이 있었다. 대표적인 것이 바로 eclipse + xdebug 이다.

 

잠깐, 인터랙티브 디버깅(interactive debugging)의 장점을 생각나는 대로 메모해본다. 소스 코드에서 실행을 멈춰 보고 싶은 행에 중단점(breakpoint)을 설정할 수 있다. 그 지점에서부터 한 줄(행)씩 실행하거나 다음 중단점까지 실행하거나 할 수 있다. 그 와중에 모든 변수들의 값을 관찰할 수 있다. 따로 print_r()이나 var_dump() 함수로 변수값을 화면이나 로그 파일로 찍어내지 않아도 된다. (-> 프로그램 코드가 아주 깨끗해진다.) 마치 비디오 판독작업을 할 때처럼 순간 정지나 슬로비디오로 천천히 들여다 볼 수 있다. 이 기능의 위력을 알게 되면 그동안 print_r()과 var_dump()에만 기대어 살아온 날들이 허무하고 억울하게 느껴지게 된다. 이제부터라도 사용해보도록 하자.

 

Xdebug를 사용하려면, (1) 서버측에서의 설정과 (2) eclipse에서의 설정, 두 가지가 모두 필요하다.

 

 

1. 서버측 설정 : XAMPP

 

윈도 PC에서 apache/mysql/php 서버 환경을 간단하게 구축할 수 있도록 해주는 통합 패키지 xampp의 설치 및 설정은 다음 글 참조.

 

2009년 8월 6일 현재 XAMPP 최신 버전은 1.7.1 임. 기존의 1.6.x 버전대와 몇 가지 달라진 점 때문에, Xdebug 설정이 조금 혼란스러워 졌음. 과거의 방법들은 잊고, 새로운/더 쉬운 방법만 기억하자.

 

XAMPP 1.7.1 버전에는 xdebug 모듈이 이미 포함되어 있다. xampp\php\ext 디렉토리에 가면 php_xdebug.dll 파일이 있다. 실제로 xdebug 배포 사이트에 가보면, 대체 어떤 파일을 골라서 가지고 와야 하는지, 정말 어수선하고 혼란스럽고 헷갈리고 그래서 급기야 짜증모드로 돌진하게 되곤 한다. 다행인지 XAMPP 패키지에는 이미 적합한 놈이 들어있다. (혹시 참을성에 자신있으신 분은 xdebug 사이트로 가서 적합한 놈을 찾아보시길… http://www.xdebug.org 농담임. 괜히 고생함.)

 

중요한 설정작업: php.ini

 

XAMPP php.ini 파일은 xampp\php 디렉토리 밑에 있다. 그 파일을 열어서 xdebug 관련 부분을 설정해준다.

처음에는 아래와 같이 되어 있다.

 

 

위 부분에서 [Zend] 섹션은 모두 코멘트(;)로 막아준다. 그리고, 아래 [XDebug] 섹션은 모두 코멘트 해제한다.

 

 

xdebug는 Zend Optimizer와 함께 사용할 수가 없다. 보통 디버깅은 테스트 서버에서 수행하게 되므로, 특별히 Zend Optimizer가 없다고 해서 특별히 문제가 생기지는 않을 것이다. 만약 LIVE 서버(실 운영서버)라면 xdebug 모드는 접는 게 좋겠다.

 

주의사항: xdebug 관련 내용을 php.ini 파일에서 찾아보면 위 부분외에도 extension 지정하는 부분이 하나 더 나온다. 기본적으로는 코멘트로 막혀있다. 이 부분은 굳이 풀어주지 않아도 된다. 만약 이 부분을 풀어준다면, Warning 이 뜬다. 물론, eclipse에서 디버깅도 안된다.

   

[추가사항: 2009년 8월 13일]

2009년 8월 10일, XAMPP 1.7.2 버전이 새로 나옴. 패키지에 포함된 PHP 버전도 5.3.0으로 올라가고, Xdebug 모듈도 2.0.5로 올라갔다. 특히, php.ini 에서 xdebug 설정해주는 방법이 몹시 간단해졌다.

   

xdebug 설정을 위해 해줄 작업은 단 한줄의 코멘트를 제거해주는 일로 줄었다.

   

   

이것만 해주면, 아래와 같이 XDebug가 먹힌다.

   

   

추가사항 끝~

   

Xdebug 설정 전에는 php -v 명령을 실행하면 아래와 같이 나온다.

 


 

php.ini 설정을 완료하면, 아래와 같이 "with Xdebug v2.0.4, Copyright (c) 2002-2008, by Derick Rethans" 문구가 보인다.

 

 

모든 게 정상적으로 잘 설정되면, 아래 링크를 눌렀을 때 웹 페이지에서도 아래와 같은 이미지가 보인다. php.ini 파일을 수정했으므로 물론 아파치 서버는 stop시켰다가 새로 start 시켜야 한다.

 

 

뭔가 잘못되었으면, 아래와 같은 이미지가 보인다. "with Xdebug.." 메시지가 없다.

 

 

재미있는 것은 뭔가 잘못된 와중에도 아래와 같이 phpinfo() 출력값의 xdebug 섹션에는 관련 값들이 잘 보이는 경우가 있다.

 

 

이것은, 설정값은 적용되었지만, 정작 중요한 php_xdebug 모듈이 올라가지 않은 상황이다. php.ini 파일의 중간 부분에 있는 ; Windows Extensions 의 extension=php_xdebug.dll 설정라인이 코멘트로 잘 막혀있는지를 다시 확인해보자. 이걸 코멘트 해제하고 밑에서 [XDebug] 섹션도 코멘트 해제하면 서로 충돌해서 안된다. 이건 건들지 말자!

 


 

 

2. eclipse에서의 설정

 

eclipse galileo 버전(3.5)에서는 사실 특별히 뭔가를 새로 설치해주지 않아도 된다. (얼마나 편해졌는지… 혹시 예전 버전에서의 설정법을 알고 싶다면, 이 링크 참조. Eclipse 에 XDebug 플러그인 추가하기)

 

Xdebug를 위해 eclipse에서 해줘야 할 설정작업은 다음과 같다. 좀 많은 건 사실이다.

 

2.1. 우선 eclipse 에서 PHP Project를 하나 만든다.

 

웹 서버와의 연동을 테스트할 것이므로 웹 서버 document_root인 htdocs 밑에 디렉토리가 위치하는 PHP Project를 만드는 게 좋겠다.

 

 

아주 간단한 테스트 파일을 하나 만들자.

 

echo.php

<?php

$w = "hi, ";
echo $w;

$w = $w . "world...<br>\n";
echo $w;

$sum = 0;
for ($i=0; $i<10; $i++) {



$sum = $sum + $i;



printf("%d \t = \t%d <br>\n", $i, $sum);
}

 

 

2.2. Window->Preferences:: PHP ?> PHP Server 설정

 

 

위의 Default PHP Webserver 항목을 더블 클릭으로 누르거나 'Edit' 버튼을 눌러서 아래 화면을 띄운다.

 

 

그 다음 'Path Mapping' 항목을 눌러서, 값을 설정해준다. 웹 서버에서의 경로와 Eclipse 워크스페이스에서의 경로를 서로 맞춰주는 과정이다.

 

 

완료되면, 아래와 같이 보인다.

 

 

 

2.3. Window->Preferences:: PHP ?> PHP Executables 설정

 

 

php.ini 파일의 설정이 잘되었다면, 위와 같이 'Search' 버튼을 눌러서 XAMPP 설치 디렉토리를 지정하고 PHP 실행파일을 검색해본다. 만약 잘 찾았으면 아래와 같이 내용이 짠하고 나타난다.

 

 

만약 자동검색으로 잘 못찾으면, 'Add' 버튼을 눌러서 하나씩 지정해줘도 된다. 자동검색으로는 Zend Debugger 타입만 검색된다. XDebug 타입을 아래와 같이 'Add'해줘야 한다.

 

 

 

2.4. Window->Preferences:: PHP ?> PHP Debug 설정

 

PHP Debugger 타입을 XDebug로 바꾸면, 자동으로 밑의 PHP Executable도 바뀐다.

 

 

이제 대충 설정하는 작업은 마쳤다.

 

 

3. 실행해보기

 

3.1. Script로 디버깅하기

 

메뉴에서 벌레모양 아이콘의 화살표 부분을 누르고 Debug As ?> PHP Script 항목을 누른다.

 

 

퍼스펙티브를 바꿀려고 하는데 맞냐고 아주 친절하게 물어온다. 맞다고 해준다.

 

 

짜잔~ 드디어 디버깅 화면이 보인다.

 

 

위 화면에서 (1)은 중단점(Breakpoint)이다. 디폴트로 1st line이 자동으로 중단점이 된다. 만약 다른 라인에도 중단점을 주고 싶으면 편집창 왼편의 회색부분을 2번 클릭하면 된다.

 

위 화면의 (2)는 변수값을 관찰할 수 있는 영역이다. 현재는 모든 변수값이 초기화되기 전이므로 <Uninitialized>로 나타난다.

 

위 화면의 (3)은 컨트롤 버튼이다. Step Into(F5)는 한 라인씩 진행하되 함수 안으로까지 추적해들어가는 명령이고, Step Over(F6)는 함수를 만나면 안으로 들어가지 않고 그냥 한 라인으로 생각하고 다음 라인으로 넘어간다.

 

 

4행까지 진행한 결과가 위 화면이다. 변수값 $w의 값이 바뀌었고, Console과 Debug 창에 echo $w 결과값이 나타나 있다.

 

그 이후 과정도 이런 식이다. 한 줄씩 실행하면서 관련된 변수값의 변화를 관찰하는 것이다.

 

3.2. Web Page로 디버깅하기

 

메뉴에서 벌레모양 아이콘의 화살표 부분을 누르고 Debug As ?> PHP Web Page 항목을 누른다.

 

 

 

로컬서버인 xampp에서의 경로가 맞는지를 확인하는 창이 아래와 같이 뜬다.

 

 

다시, 친절하게 물어본다. 퍼스펙티브 바뀌는 게 맞냐고? 맞다고 해준다.

 

 

짜잔… 다시 디버깅 화면이 뜬다.

 

다른 건, Script 디버깅 모드와 동일한데, 아래와 같이 웹 브라우저가 뜨면서, 뭔가를 기다리는 모양새가 된다. 현재의 예제는 PHP 코드의 끝까지 실행되어야만 화면에 출력되므로, 사실 디버깅이 끝날 때까지 웹 브라우저는 그냥 계속 기다린다.

 

 

 

4. 보충

 

4.1. eclipse Run/Debug Configurations 화면에 대한 오해

 

처음 eclipse의 Debug Configurations 화면을 보면서, 잠시 막막했던 적이 있다. 아니, 매번 하나씩 이렇게 설정을 New해서 만들어줘야 하나? 그걸 귀찮아서 어떻게 해!!! 그랬다.

 

 

아래 화면처럼 하나씩 직접 입력해서 만들어줘야 하는 줄 알았다. 오해였다. 착각이었다. 이클립스가 그렇게 허술하고 불친절한 툴이 절대 아니다.

 

 

 

그냥, 아래와 같이 Rus As ?> PHP Script / PHP Web Page 를 선택해서 실행해주면 된다. 한 번 실행된 것은 자동으로 Configuration으로 만들어져서, 아래 그림에서와 같이 'echo' 'echo web'이라는 이름으로 빠른 실행이 가능하게 메뉴에 나타나게 된다.

 

 

 

 

 

4.2. Web Page 디버깅시 웹 브라우저가 뜨는 게 귀찮다면? Internal Web browser를 사용!

 

Window->Preferences: General->Web Browser에서 아래와 같이 선택한다.

 

 

그럼, 아래와 같이 디버깅이 마지막 라인까지 도달하면, Internal Browser의 출력값을 확인할 수 있다.

 

 

 

4.3. 참고한 문서들

 

 

 

 

 

 

 

반응형

'Language > PHP' 카테고리의 다른 글

플레쉬 차트 (OFC2JS) - Table2Chart  (0) 2010.01.19
정규표현식 테스트 필요할 때 보조 프로그램  (0) 2010.01.19
PHP 정규표현식  (0) 2010.01.18
XAMPP 설치 가이드  (0) 2009.12.28
xampp  (0) 2009.12.28
반응형
  1. 설치 언어 선택

  • 영어로 선택하고 OK 클릭

 

Next > 클릭

  1. 설치 위치 선택

    기본적으로 c:\xampp 하는 것이 좋음(vista 일때 권한문제 포함)

Next > 클릭

  1. 선택 옵션

    Create a XAMPP desktop icon 체크 (기본 아이콘에 나오도록 설정)

    Create an Apache Friends XAMPP folder in the start menu 체크 (윈도우 시작메뉴에 나오도록 체크)

    SERVICE SECTION

    서비스를 수행하는 Apache 설치

    Install 클릭

    데이터 베이스 서비스를 수행하는 MySQL 설치

     

  2. 설치 완료 화면

    Finish 클릭

 

  1. 서비스 설치가 완료된 화면

  1. XAMPP 환경 설정 부분 (Y) 클릭

 

  1. 서비스를 Start(시작) / Stop(멈춤) 설정을 하는 콘트롤 패널 입니다.

    쉽게 말해서 서비스를 할려면 apache 시작되어야 하고

    데이터 베이스를 사용하기 위해서는 Mysql 시작되어야 합니다.

    Running 정상적으로 서비스 가동중이라는 뜻입니다.

   

 

반응형

'Language > PHP' 카테고리의 다른 글

플레쉬 차트 (OFC2JS) - Table2Chart  (0) 2010.01.19
정규표현식 테스트 필요할 때 보조 프로그램  (0) 2010.01.19
PHP 정규표현식  (0) 2010.01.18
eclipse 설정: Xdebug로 디버깅하기 with XAMPP 서버  (2) 2009.12.28
xampp  (0) 2009.12.28
반응형

###########################
## xampp
###########################

XAMPP는 크로스 플랫폼 웹 서버 자유 소프트웨어 꾸러미이다.
아파치 웹 서버 MySQL, PHP, 펄을 포함하고 있다.
GNU 일반 공중 사용 허가서로 배포되며 자유롭고 쓰기 쉬운 웹 서버이다.
마이크로소프트 윈도, 리눅스, 솔라리스, 맥 오에스 텐 등에서 동작하며 주로 웹 개발에 사용된다.



XAMPP 1.7.3 버젼 특징

  • Apache 2.2.14 (IPv6 enabled) + OpenSSL 0.9.8l
  • MySQL 5.1.41 + PBXT engine
  • PHP 5.3.1
  • phpMyAdmin 3.2.4
  • Perl 5.10.1
  • FileZilla FTP Server 0.9.33
  • Mercury Mail Transport System 4.72

xampp 홈페이지 :  http://www.apachefriends.org/en/xampp.html

Vista 버젼에서는
권한 문제 때문에 C:\Program Files 폴더 보다는

C:\xampp 나 C:\meinverzeichnis\xampp로 하는것을 추천함.

소스포지 다운로드 주소 : http://sourceforge.net/projects/xampp/files/

윈도우즈 버젼...


반응형

+ Recent posts