웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
[php] 스킨 해석&출력...
2002.09.01 16:29
http://extiz.com/skinparser예제 : http://extiz.com/skinparser/view.php
예제 소스 : http://extiz.com/skinparser/view.txt
해석함수 소스 : http://extiz.com/skinparser/lib.txt
스킨파일 : http://extiz.com/skinparser/view.htm
미리 만들어진, 출력할 데이터가 들어있는 배열을
스킨파일과 샤샤샥 합쳐서 출력해주는 함수들입니다...
간단한 설명을 드리자면..
1.문자열해석 함수로 스킨파일을 보냅니다.
2.함수에서 첫번째 태그를 발견하면 그 태그 이전의 일반 문자열들을 출력합니다.
3.태그의 모드(변수,반복문,조건문)에 따라 각각의 처리 함수로 보냅니다.
4.처리한 태그의 뒷부분부터 끝까지를 잘라서 재귀호출합니다.
5.처리할 태그가 없으면 출력합니다.
..변수 처리 함수는 그냥 넘어온 변수 이름을 데이터 배열에서 찾아
뿌려줍니다.
..조건문 처리 함수는 넘어온 변수 이름을 데이터 배열에서 찾아
값이 있을때 문자열을 파싱함수로 보냅니다.
..반복문 처리 함수는 넘어온 변수 이름을 데이터 배열에서 찾아
원소의 갯수만큼 문자열을 파싱함수로 보내는 동작을 반복합니다.
장점 :
* 디자이너나 스킨 제작자가 만들기에 상당히 편합니다. html 태그처럼 쓸수 있습니다..
* 무한대의 다중 반복&조건문이 됩니다.. (정밀한 테스트는 안해봤습니다 ㅡㅡ;)
* 아무나 퍼다 써도 됩니다....-_-
단점 :
* 속도가 느립니다... ㅠㅠ
* 기타 여러가지 단점이 많습니다.. (모르겠음..ㅡㅡ;)
* 소스가 개떡같슴다-_-
변수 출력은 이렇게 합니다.
<!--{VAR:ahehheh}-->
그럼 배열의 ahehheh 이라는 키를 가진 배열의 값을 출력합니다.
저 부분이 조건문이나 반복문 안에 있다면 알아서 그 하위의
변수를 출력합니다.
조건문은
<!--{IF:info}-->
메일 : <!--{VAR:email}--> 홈페이지 : <!--{VAR:site}-->
<!--{/IF:info}-->
위와같이 사용합니다.
원소가 하나라도 있다면 IF태그 사이의 문자열을 출력합니다.
반복문은..
<!--{LOOP:comments}-->
이름 : <!--{VAR:name}--> 내용 : <!--{VAR:content}-->
<!--{/LOOP:comments}-->
이렇게 사용합니다. 각각 comments 의 원소 갯수만큼 반복합니다.
예제 소스 : http://extiz.com/skinparser/view.txt
해석함수 소스 : http://extiz.com/skinparser/lib.txt
스킨파일 : http://extiz.com/skinparser/view.htm
미리 만들어진, 출력할 데이터가 들어있는 배열을
스킨파일과 샤샤샥 합쳐서 출력해주는 함수들입니다...
간단한 설명을 드리자면..
1.문자열해석 함수로 스킨파일을 보냅니다.
2.함수에서 첫번째 태그를 발견하면 그 태그 이전의 일반 문자열들을 출력합니다.
3.태그의 모드(변수,반복문,조건문)에 따라 각각의 처리 함수로 보냅니다.
4.처리한 태그의 뒷부분부터 끝까지를 잘라서 재귀호출합니다.
5.처리할 태그가 없으면 출력합니다.
..변수 처리 함수는 그냥 넘어온 변수 이름을 데이터 배열에서 찾아
뿌려줍니다.
..조건문 처리 함수는 넘어온 변수 이름을 데이터 배열에서 찾아
값이 있을때 문자열을 파싱함수로 보냅니다.
..반복문 처리 함수는 넘어온 변수 이름을 데이터 배열에서 찾아
원소의 갯수만큼 문자열을 파싱함수로 보내는 동작을 반복합니다.
장점 :
* 디자이너나 스킨 제작자가 만들기에 상당히 편합니다. html 태그처럼 쓸수 있습니다..
* 무한대의 다중 반복&조건문이 됩니다.. (정밀한 테스트는 안해봤습니다 ㅡㅡ;)
* 아무나 퍼다 써도 됩니다....-_-
단점 :
* 속도가 느립니다... ㅠㅠ
* 기타 여러가지 단점이 많습니다.. (모르겠음..ㅡㅡ;)
* 소스가 개떡같슴다-_-
변수 출력은 이렇게 합니다.
<!--{VAR:ahehheh}-->
그럼 배열의 ahehheh 이라는 키를 가진 배열의 값을 출력합니다.
저 부분이 조건문이나 반복문 안에 있다면 알아서 그 하위의
변수를 출력합니다.
조건문은
<!--{IF:info}-->
메일 : <!--{VAR:email}--> 홈페이지 : <!--{VAR:site}-->
<!--{/IF:info}-->
위와같이 사용합니다.
원소가 하나라도 있다면 IF태그 사이의 문자열을 출력합니다.
반복문은..
<!--{LOOP:comments}-->
이름 : <!--{VAR:name}--> 내용 : <!--{VAR:content}-->
<!--{/LOOP:comments}-->
이렇게 사용합니다. 각각 comments 의 원소 갯수만큼 반복합니다.
제목 | 글쓴이 | 날짜 |
---|---|---|
교육용 방명록 #6 [수정된 값을 넘겨받아서 비밀번호를 비교하고 변경하여 줍니다.] [2] | zero | 2000.07.03 |
교육용 방명록 #3 [글쓰기 폼에서 넘어온 값을 DB에 입력하기] [5] | zero | 2000.07.03 |
교육용 방명록 #2 [글쓰기 폼 작성] [11] | zero | 2000.07.03 |
교육용 방명록 #1 [전체구성 설정, 테이블 생성, 기본함수 정의] [50] | zero | 2000.07.03 |
전에 올렸던 폼메일 만들기입니당~~~ ^^ [38] | zero | 2000.03.08 |
최근 게시물을 나타내는 원리와 방법 [55] | zero | 2000.03.06 |
교육용 메모장 #5 [21] | zero | 2000.07.10 |
교육용 메모장 #4 [18] | zero | 2000.07.10 |
교육용 메모장 #3 [16] | zero | 2000.07.10 |
교육용 메모장 #2 [18] | zero | 2000.07.10 |
교육용 메모장 #1 [53] | zero | 2000.07.10 |
윈2000, NT 또는 98에서 APM설치하기 [74] | zero | 2000.08.26 |
MySQL DB 데이타 백업/복구 하는 방법 [38] | zero | 2000.08.26 |
자동링크 만드는 방법!!! [28] | zero | 2000.03.06 |
페이지 자동 이동 방법 3가지!!! [10] | zero | 2000.03.06 |
카운터를 만들어봅시다~ (수정본) [181] | zero | 2000.03.08 |
쿠키(cookie)의 활용 [44] | zero | 2000.03.06 |
Zend Optimizer 4 설치 (아파치와 PHP4 Zend도 같이..) (리눅스) [6] | zero | 2000.06.04 |
리눅스에서 APM 설치 [9] | zero | 2000.05.31 |
MySQL RPM으로 설치하자!! (리눅스) [5] | zero | 2000.06.04 |
그러니까, <!--{LOOP:comments}-->를 <? while($record=read_comment($data)) { ?>과 같이 치환해주고.. 마지막에 eval("?>".$code."<?");로 실행하는거죠.
에에. 뭐;; 그런 겝니다. (타탕)