2010-06-28 1 views
1

저는 PHP로 작성된 다중 영역 솔루션을 호스팅하고 있으며 각 고객은 일부 HTML 파일에 자체 템플릿을 가지고 있습니다. 이제이 사용자가 동적 컨텐트를 사용할 수 있기를 원하지만 PHP를 사용할 수 없습니다. 나는이를 넣을 경우 HTML 파일에서PHP에서 "템플릿 인터프리터"를 만드는 가장 좋은 방법

: 내가 좋아하는 뭔가를 생각

<ul>[menu-list]</ul> 

윌 출력 무언가 같이

:
<ul><li><a[...]>Home</a></li><li><a[...]>About</a></li>[...]</ul> 

는 구문 분석을 유지할 것보다 일을 더 나은 방법이 있나요 및 file_get_contents()preg_match_all()을 통해 파일 캐싱?

[menu-list]과 같은 약 20 개의 항목을 만들고 모든 파일을 파싱하면 모든 파일이 매우 비싸 보입니다.

아무쪼록 고맙겠습니다. = D

+0

@ 마크 : 충분히 신중하지 않아. –

+2

내가 누락 된 것이 있습니까? 왜이 말을 잘 쓰고 생각할 수있는 질문에는 하향 투표가 있습니까? 특히 새로운 사용자가 물을 때? – Cam

답변

1

아마도 템플릿 인터프리터 대신 템플릿 컴파일러를 사용해야합니다. 즉,이 대체 절차를 수행 할 때마다 페이지가로드되는 대신 템플릿을 수정 한 후에 대체 작업을 수행 할 수 있습니다. 템플릿을 편집하는 동안 비용은 무시해도 좋습니다. 이 편집을 구현하려면 일부 이동 경로에서 "컴파일"을 선택하여 뒤로 이동하거나 나중에 편집 할 수 있도록 원래의 템플리트 파일을 저장하면됩니다.

또는 PHP 변수 명명 규칙을 사용하고 eval을 통해 템플릿을 실행하는 것도 고려할 수 있지만 보안 위협과 같은 여러 가지 문제가 있으므로 적극 권장하지 않습니다.

+0

+1. 이것은 좋은 아이디어 (특히 컴파일 부분)이지만 편집을 위해 파일을 보존하는 것과 관련하여 약간 다른 접근법을 취할 것입니다. 해당 파일에 영향을 줄 때마다 컴파일 된 파일을 다시 생성하지만 전체 원본 파일을 손상시키지 않을 것입니다. – Cam

+0

니스. 나는 이렇게 할 것입니다. – user377706

0

Smarty과 친구들을 사용할 수없는 이유는 무엇입니까? 나는 네가 제안한 것을 쓰고 싶지 않다.

+0

멋쟁이는 멋진 도구 인 것 같지만 사람들을 훈련 시키거나 ""태그로 지식을 요청할 수는 없습니다. – user377706

+0

[menu-list]가 smarty의 태그보다 나은 점은 무엇입니까? – middus

관련 문제