포럼

빵조각 기능을 만들기 위해 만들게 되었는데 안타깝게도 기존의 생각대로 하면 3단, 4단 처럼 정해진 수만큼만 뽑아낼 수 있더군요. 물론 메뉴도 그렇구요. 그래서 함수를 재귀적으로 호출하게 된다면 ∞단(XE가 지원하는 최대 만큼)만큼 메뉴와 빵조각을 뽑아낼 수 있다고 생각해서 함수를 짜려고 했으나 !! 안타깝게도 XE 템플릿 문법에서는 {, }를 마음껏 표현할 수 없었습니다. (NHN 개발자들 기술력의 한계를 느끼며, 템플릿 문법 치환을 앞 뒤로 파악해 쪼여주는게 아니라 대충 분석해서 치환시키는 구조인게 문제, preg나 ereg 계열 정규식이 어떻게 동작하는지 대충 훑어봐도 어떻게 치환해줄지 감이 올텐데.. 안타까움)


그래서 우회적인 방법을 동원하였지요.


{@ $_traceRoot = create_function('', strtr('if(true) #[ return true; ]#', array('#[' => chr('123'), '#]' => chr('125')))); echo call_user_func($_traceRoot); }


대략 템플릿 문법에서 PHP 구문을 실행하기 위해서는 {@ ~~ } 으로 묶어주지요?

그러나 저 구문 안에서는 {, }를 쓰면 템플릿 문법이랑 충돌하는 탓에 에러가 뿜는 바람에

function() {}으로 노골적으로 함수를 선언할 수 없어서 우회적인 방법으로 PHP에 내장된 함수를 이용해

함수를 만들어서 반환해주는 create_function 함수를 사용해서 함수를 만들어냅니다.


물론 저 안에서도 if문이라던지 각종 구문에서 {, }가 필요한데 일부로 {를 #[으로 적고 }를 ]#으로 표기한 다음에

저 부분을 통째로 strtr 함수를 이용해서 #[을 {, #]을 }으로 각각 치환시키는데 여기서도 {, }을 직접 표기 못하니까

우회적인 방법으로 {, }의 아스키 코드인 123, 125를 chr 함수를 이용해 문자열로 바꾸어 주도록 표현했습니다.


그런데 가장 큰 문제점은 어이없게도 저렇게 만들어낸 함수를 직접 호출하면 선언되지 않은 함수라고 호출되지 않더군요.

그래서 call_user_func를 통해 변수에 담아둔 함수를 실행시키도록 했습니다.


(매번 짜면서 느끼는거지만 PHP에는 수 많은 유용한 함수가 있다는 것에 감탄)

글쓴이 제목 최종 글
soonpeng XE... 튜닝으로 속도는 잡았지만.. [5] 2013.08.02 by S야옹이
뮤르시엘라고 엮인글 테러를 당하는 방법은 뭐가 있을까요? [5] 2013.08.02 by S야옹이
큰성565 1.7에 2번도 적용되어 있나요? [5] 2013.08.02 by 큰성565
경호씨 에디터 콤포넌트 - 지도 글쓰기 도구 사용하세요? [6] 2013.08.03 by misol
참치.k [보안] 이메일 노출 문제 [15] file 2013.08.03 by 궁굼자
kukuriko �� 이런 글자는 왜 생길까요? [8] 2013.08.03 by kukuriko
영구만세 1.5.3설치 후 에러 존재하지 않는 회원! [30] file 2020.03.14 by misol
CMD XE 1.4 관리자 페이지 레이아웃 배포 [20] file 2013.08.06 by S야옹이
박군469 음... 게시판 생성 부터 열심히 해서 왠만큼 잘됩니다. 그리고 질문입니다 [2] 2013.08.04 by 박군469
아짱。 지식인xe 저만이렇게나오나요?? file  
리크스 패스워드 암호화  
socialskyo [십원아이디어] 버그 테스트 지식 나눔 합시다.  
seojun7 정말 정말 중요한 문제에요 ㅠㅠ... [3] 2013.08.06 by pentopen
Hammer XE 로고를 Presskit와 같은 메뉴에서 배포하시면 어떻습니까? [4] 2014.05.04 by 윈컴이
HEARTEYE 소스에는 아무 문제가 없는것 같은데.. 왜 작동을 안할까요.. [6] 2013.08.07 by HEARTEYE
KANTSOFT 부트스트랩 3 RC1... [3] 2013.08.07 by 현스가이
김승준218 우분투에서 설치하는데 DB 선택화면에서 진행이안되네요 ;; [3] 2013.08.07 by 김승준218
씨엠에스개발자 1.7.0 iis7.5 + mssql 설치시 한글깨짐현상.. [1] 2020.03.14 by SDFASDF
랭크플래시 XE의 db 관련 클래스 소스에 의문사항이 있습니다. [5] 2013.08.09 by sdfsdf
친절뺀질이 이미지를 지원하는 RSS 사이트 추천부탁드립니다. [2] 2013.08.09 by DSFSDF