PHP에서 의사 변수 파서를 작성하여보기에 깨끗하고 간단한 구문을 허용하고 if 문에 엔진을 구현했습니다. 이제 중첩 된 if 문을 사용할 수 있기를 원하며 가장 단순하고 세련된 해결책은 식별자를 블록의 표식으로 사용하는 것입니다.preg_match_all에서 regex 변수 사용하기
{if x is empty}
{if y is array}
Hello World
{endif}
{endif}
스크립트는 첫 번째 경우 문을 발견하고 같은 깊이에 ENDIF와 일치합니다 :
그래서이 basicly 내가보기에 찾고 있어요 레이아웃입니다. true로 평가되면 내부 블록도 구문 분석됩니다. ,
preg_match_all('|([\t ]?){if (.+?) is (.+?)}(.+?){endif}|s', $template, $match);
은 기본적으로 내가 ([\t ]?)
의 첫 경기는 변수의 어떤 종류를 사용 {endif}
전에 배치 할 :
지금, 나는 다음과 같은 코드에 깊이를 사용하는 정규 표현식을 설정하는 데 문제가 {if ...}
과 동일한 깊이에 일치하는 {endif}
이없는 경우 명세서가 완전하지 않은지 확인하십시오.
완성 해 주시겠습니까?
이러한 이유 중 하나를 사용하고 싶지 않은 이유는 무엇입니까? http://www.webresourcesdepot.com/19-promising-php-template-engines/ –
CodeIgniter에 내장 된 템플릿 enginge을 확장하고 필요한 if 문만 있으면됩니다. – Christoffer