phplib 템 플 릿 중국어 매 뉴 얼
이 템 플 릿 클래스 는 일부 외부 파일 에 HTML 코드 를 저장 할 수 있 습 니 다. 이 파일 들 은 PHP 코드 를 전혀 포함 하지 않 고 바 꿀 필드 만 포함 합 니 다.이 클래스 는 필드 를 바 꾸 려 는 함 수 를 임의의 문자열 로 채 울 수 있 는 함 수 를 제공 합 니 다.
비고: 이 문서 의 버 전 은 더 이상 유지 되 지 않 습 니 다. template. inc 원본 파일 의 주석 부분 을 참고 하여 가장 신뢰 할 수 있 는 문 서 를 얻 으 십시오.
템 플 릿 클래스 인 스 턴 스 변수
호출 가능 한 인 스 턴 스 변수
classname
문자열 (String). 클래스 시퀀스 도움말: 클래스 이름.
debug
정형 (Integer). 표지: 1 로 설정 하면 모든 변수 할당 상황 을 관찰 할 수 있 고 2 로 설정 하면 호출 가능 한 변 수 를 관찰 할 수 있 으 며 4 로 설정 하면 내부 함수 호출 을 관찰 할 수 있 습 니 다.
unknowns
"keep", "comment", "remove" (기본 값) 세 가지 중 하나 입 니 다. 템 플 릿 에서 처리 되 지 않 은 변수 이름 을 출력 부분 에서 어떻게 처리 할 지 결정 합 니 다. "keep" 로 설정 하면 이 변수 이름 들 은 그대로 유 지 됩 니 다. "comment" 로 설정 하면, 처리 되 지 않 은 변수 이름 을 모두 HTML 주석 으로 변환 합 니 다. "remove" 로 설정 하면,처리 되 지 않 은 변수 이름 은 조용히 삭 제 됩 니 다.
halt_on_error = "yes"
"yes" (기본 값), "report", "no" 세 가지 중 하나 입 니 다. 템 플 릿 류 오류 처리 방식 을 결 정 했 습 니 다. "yes" (기본 값) 로 설정 하면 오류 가 보고 되 고 프로그램 실행 도 중 단 됩 니 다. "report" 로 설정 하면 오류 도 보고 되 고 프로그램 만 계속 실행 되 며 "false" 로 돌아 갑 니 다. "no" 로 설정 하면 오류 가 차단 되 고 프로그램 실행 결 과 는 "false" 로 돌아 갑 니 다.
last_error = ""
최근 오류 정 보 는 이 변수 에 저 장 됩 니 다.
내부 실례 변수
file
문자열 해시. 변수 이름 을 해당 하 는 파일 이름 으로 변환 할 수 있 는 변환 표 입 니 다.
root
문자열 (경로 이름). 템 플 릿 파일 이 불 러 온 홈 디 렉 터 리 입 니 다.
varkeys
문자열 해시. 변 수 를 정규 표현 식 으로 변환 할 수 있 는 변환 표 입 니 다.
varvals
문자열 해시. 변 수 를 각각 varkey 에 대응 하 는 대체 값 으로 변환 할 수 있 는 변환 표 입 니 다.
템 플 릿 클래스 인 스 턴 스 방법 은 인 스 턴 스 방법 을 호출 할 수 있 습 니 다.
Template ($root = ".", $unknowns = "remove") 구조 함수 입 니 다. 선택 할 수 있 는 인자 가 두 개 있 습 니 다. 첫 번 째 매개 변 수 는 템 플 릿 이 있 는 디 렉 터 리 를 설정 하고 두 번 째 매개 변 수 는 알 수 없 는 변 수 를 설정 합 니 다.
set_루트 ($root) 이 함 수 는 $root 가 올 바른 디 렉 터 리 인지 확인 한 다음 이 템 플 릿 이 있 는 디 렉 터 리 를 주목 로 설정 합 니 다. setunknowns ($unknowns = "remove") 이 함 수 는 처리 되 지 않 은 변수 이름 의 처리 방식 을 설정 합 니 다. "remove", "comment" 또는 "keep" 세 가지 중 하나 여야 합 니 다. "keep" 로 설정 하면 이 변수 이름 은 그대로 유 지 됩 니 다. "comment" 로 설정 하면 오류 가 발생 하면 처리 되 지 않 은 변수 이름 을 모두 HTML 주석 으로 변환 합 니 다. "remove" 로 설정 하면,처리 되 지 않 은 변수 이름 은 조용히 삭 제 됩 니 다. (기본 값 입 니 다.)
set_file ($varname, $filename = ") 이 함 수 는 함수 의 초기 값 으로 파일 이름 을 정의 합 니 다. $varname / $filename 쌍 또는 일련의 $varname / $filename 쌍 으로 호출 할 수 있 습 니 다. 이 파일 들 은 필요 할 때 만 불 러 옵 니 다.
set_block ($parent, $varname, $name = ") 변수 $parent 는 $varname 으로 명 명 된 변수 블록 을 포함 할 수 있 습 니 다. 이 함 수 는 $parent 에서 이 블록 을 삭제 한 다음 $name 이라는 변수 로 대체 합 니 다. $name 이 무시 되면 $varname 과 같이 가정 합 니 다.
set_var ($varname, $value = ") 이 함 수 는 변수의 초기 값 을 설정 합 니 다. $varname / $value 쌍 또는 일련의 $varname / $value 쌍 으로 호출 할 수 있 습 니 다.
subst ($varname) 이 함 수 는 $varname 이라는 변수의 값 을 되 돌려 줍 니 다. 변 수 를 정의 하 는 모든 값 이 채 워 졌 습 니 다. 결과 문자열 은 최종 결과 가 아니 라 변 수 를 완전히 처리 하지 않 은 것 입 니 다.
psubst($varname)
이것 은 print $this - > subst ($varname) 의 약자 형식 입 니 다.
parse ($target, $varname, $append = false) 이 함 수 는 $varname 을 이름 으로 하 는 모든 정 의 된 변수의 값 을 대체 하고 $target 을 변수 이름 으로 하 는 결과 에 저장 하거나 추가 합 니 다.
$varname 을 변수 이름 배열 로 하면 $append 가 차 단 됩 니 다. $varname 을 이름 으로 하 는 변 수 는 연속 으로 대 체 됩 니 다. 모든 대체 절차 의 결 과 는 $target 에 있 습 니 다. 최종 대체 결 과 는 $target 을 이름 으로 하 는 변수 에서 얻 을 수 있 습 니 다. 다음 $varname 의 중간 처리 부분 으로 볼 수 있 습 니 다.
pparse ($target, $varname, $append = false) 이것 은 print $this - > parse (...) 입 니 다.
get_vars () 는 정 의 된 값 의 모든 서열 을 되 돌려 줍 니 다. 모든 값 은 그 이름 을 키 로 합 니 다.
query_id () 는 $varname 으로 명 명 된 변수의 값 을 되 돌려 줍 니 다. $varname 이 파일 에 대응 하고 파일 이 불 러 오지 않 으 면 변 수 를 비어 있 습 니 다. 변수 이름 배열 로 호출 할 때 값 의 시퀀스 를 되 돌려 줍 니 다. 이름 을 키 로 합 니 다.
get_undefined ($varname) 이 함 수 는 $varname, 이름 이 키 가 없 는 방식 으로 일련의 처리 되 지 않 은 변수 이름 (즉 $a [$name] = $name 을 포함 하 는 시퀀스) 을 되 돌려 줍 니 다.
finish ($str) 이 함 수 는 $str 의 최종 버 전 을 되 돌려 줍 니 다. 즉, 완전히 처리 되 지 않 은 처리 방식 에 대해 $str 에 적 용 됩 니 다.
p ($varname) 이 함 수 는 $varname 이름 의 변수의 마지막 버 전의 값 을 출력 합 니 다.
get ($varname) 이 함 수 는 $varname 이름 을 가 진 변수의 마지막 버 전의 값 을 얻 을 수 있 습 니 다.
haltmsg ($msg) 이 함 수 는 템 플 릿 하위 클래스 에 덮어 쓸 수 있 습 니 다. 호출 할 정 보 를 출력 할 수 있 습 니 다.
내부 실례 방법
filename ($filename) 이 상대 적 인 경로 로 호출 될 때 함수 가 경로 이름 을 되 돌려 줍 니 다. $this - > root 에서 추출 한 적당 한 디 렉 터 리 이름 을 추가 합 니 다. 절대 경로 라면 변경 하지 않 고 사 용 됩 니 다.
결과 파일 이름 은 반드시 존재 해 야 합 니 다. 그렇지 않 으 면 오류 가 오래 발생 할 것 입 니 다.
varname ($varname) 이 함 수 는 주어진 변수 이름 에 따라 변수 이름 표현 식 을 구성 합 니 다 (번역: 즉 var - > {var}).
loadfile ($varname) 변수 가 정의 되 지 않 거나 비어 있 고 파일 에 대응 하면 해당 하 는 파일 이 불 러 옵 니 다. 파일 내용 은 이 변수의 값 으로 부 여 됩 니 다.
halt ($msg) 는 언제든지 오류 가 발생 하면 이 함수 가 불 러 옵 니 다. $this - > halton_error 가 정의 한 방식 으로 이 오 류 를 처리 합 니 다.
템 플 릿 류 는 인 스 턴 스 를 사용 합 니 다. 이 템 플 릿 류 는 일부 변수의 집합 을 관리 합 니 다. 모두 텍스트 문자열 입 니 다. 이 문자열 들 은 {변수} 형식 으로 다른 변수의 인용 을 포함 할 수 있 습 니 다. 분석 하거나 교체 할 때 하나의 변수의 인용 은 그 변수의 값 으로 대 체 됩 니 다. 예 를 들 어, 만약 당신 이 이렇게 한다 면.
<?php
$t = new Template;
$t->set_var("a", "defined as hugo");
$t->set_var("b", "the value of a is {a}");
print $t->subst("b")
?>
출력 "the value of a is defined as hugo".
하나의 변수의 값 은 set 를 수 동 으로 호출 할 수 있 습 니 다.var ('이름', '값'), 방식 정의 또는 set file ('이름', 'filename. html') 을 호출 할 수 있 습 니 다. 한 파일 에서 정의 합 니 다. 다음 상황 에서 필요 할 때 (가능 한 한 늦게) 파일 내용 을 불 러 오고 변수의 값 으로 설정 합 니 다.
세 번 째 변수 값 을 정의 하 는 방법 은 set block ("parent", "block", "name") 을 호출 하 는 것 입 니 다. 이 경우 "parent" 라 는 이름 의 변 수 는 을 시작 으로 을 끝 낸 블록 으로 찾 습 니 다. 문자열 은 변수 "parent" 에서 삭제 되 고 "block" 이라는 이름 의 변 수 를 부여 합 니 다. "parent" 의 "name""대응 하 는 변수 참조 가 대체 되 었 습 니 다. 옵션" name "비어 있 으 면" block "은 대체 에 사 용 됩 니 다.
하면, 만약, 만약...
<?php
$t = new Template;
$t->set_var("a", "front matter
<!-- BEGIN b -->
this is block b
<!-- END b -->
end matter");
$t->set_block("a", "b", "bb");
?>
변 수 를 'a' 로 정의 합 니 다. 'front matter {bb} end matter', 변 수 는 'b' 를 하나의 블록 으로 정의 합 니 다. 이 모든 것 은 다음 예 에서 내부 변 수 를 debug 를 7 로 설정 할 때 추적 변수 접근 상황 이 더욱 뚜렷 해 집 니 다. 템 플 릿 류 를 직접 사용 하거나 필요 하 다 면 템 플 릿 류 의 하위 클래스 를 정의 합 니 다.
아래 와 같이 page. html 라 는 템 플 릿 파일 을 정의 합 니 다.
<html>
<head><title>{PAGETITLE}</title></head>
<body bgcolor="#ffffff">
<table border=1 cellpadding=4 cellspacing=0 bgcolor="#eeeeee">
<tr>
<td colspan=2><h1>{PAGETITLE}</h1></td>
</tr>
<tr>
<td>{OUT}</td>
<td>Content<br>{UNDEFINED_VARIABLE}</td>
</tr>
</table>
</body>
</html>
이 파일 은 대응 변수 PAGETITLET 의 인용 과 OUT 이름 의 인용 을 포함 합 니 다. 다른 하 나 는 UNDEFINEDVARIABLE 라 는 변수의 인용 은 해석 되 지 않 습 니 다. 다른 템 플 릿 파일 은 box. ihtml 이 라 고 명명 되 어 있 으 며 row 라 는 블록 을 포함 하고 세 개의 변수 참조 가 포함 되 어 있 습 니 다. {TITLE}, {NUM} 과 {BIGNUM}:<!-- start box.ihtml -->
<table border=1 bgcolor="#cccccc" cellpadding=4 cellspacing=0>
<tr>
<td colspan=2><b>{TITLE}</b></td>
</tr>
<!-- BEGIN row -->
<tr>
<td>{NUM}</td>
<td>{BIGNUM}
</tr>
<!-- END row -->
</table>
<!-- end box.ihtml -->
아래 phop 파일 시범 은 이 템 플 릿 을 어떻게 사용 하 는 지 보 여 줍 니 다.<?php
/* */
include("template.inc");
/* */
$t = new Template("/home/kris/www/test.koehntopp.de/pages/template", "keep");
/* $t->debug = 7; */ /* */
/* */
$t->set_file(array(
"page" => "page.ihtml",
"box" => "box.ihtml"));
/* */
$t->set_block("box", "row", "rows");
/* */
$t->set_var(array("TITLE" => "Testseite",
"PAGETITLE" => "hugo"));
for ($i=1; $i<=3; $i++) {
$n = $i;
$nn = $i*10;
/* NUM BIGNUM */
$t->set_var(array("NUM" => $n, "BIGNUM" => $nn));
/* row NUM BIGNUM
* rows */
$t->parse("rows", "row", true);
}
/* box ,
OUT */
$t->parse("OUT", array("box", "page"));
/* OUT*/
$t->p("OUT");
?>
< hr > 출력 정의 되 지 않 은 변수: <?php
print @implode(", ", $t->get_undefined("OUT"));
?>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다른 사람의 웹사이트 편집: contenteditable 및 designMode그래도 우리가 그렇게 할 수 있다고 생각하는 것은 멋진 일입니다. 제가 강조하고 싶었던 일종의 관련 API가 실제로 몇 개 있기 때문에 오늘 그것을 가져왔습니다. contenteditable는 "true" 값이 할당...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.