이 기사에서는 그대로 직접 출력하지 않고 ThinkPHP 템플릿에 대한 솔루션을 설명합니다. 참조를 위해 공유하십시오. 세부 사항은 다음과 같습니다.
1. 질문 :
나는 최근에 ThinkPhp 템플릿을 배우고 있었지만 템플릿 페이지가 그랬다는 것을 알았습니다. 어려운 검색 후 마침내 솔루션을 찾았습니다.
2. 해결책 :
많은 사람들이 같은 문제를 겪었습니다. 변수에 할당 된 문자열에 포함 된 __root__, __public__ 및 __app__의 문자는 템플릿에 표시 될 때 실제 경로로 대체됩니다. 즉,이 문제는 TIMI 파일 관리 시스템을 작성할 때 발견되었습니다.
파일에서 소스 코드를 읽고 페이지로 출력하고 경로 문자가 TP 인 한 실제 경로로 대체된다는 것을 알 수 있습니다.
예를 들어:
코드 사본은 다음과 같습니다. $ this-> 할당 ( 'filecontent', $ filecontent); // $ filecontent에는 __public__ "Path Constant"문자가 포함되어 있습니다.
페이지는 실제 경로 /공개 /로 출력됩니다.
이 기간 동안 나는 할당 할 때 Base64 암호화와 같은 많은 것들을 시도하고 템플릿을 출력 할 때 해독했지만 작동하지 않는 것을 발견했습니다. 마지막으로, 나는 TP의 소스 코드를 볼 수 없었지만 디스플레이 메소드의 마지막 단계에서 태그 메소드를 호출하여 "TP 경로 상수"를 실제 경로로 교체한다는 것을 알았습니다. 렌더 방법이 정상입니다.
나는 원래 다음 어린이 신발 요구 사항을 실현하기 위해 소스 코드를 변경할 계획이었습니다.
보스, 이것은 임시 솔루션입니까 아니면 최종 솔루션입니까?
그러나 나는 할당 () 메소드에 판단을 추가하는 것이 좋다고 생각합니다.
$ this-> 할당 ( '', '', false) 인 경우 컨텐츠가 교체되지 않고 출력이 as-as-is-as-is-as-is-as-as-as-as-as-as-atputs가됩니다.
결과적으로,이 소스 코드를 읽은 후, 나는 그것이 쉽지 않으며 변경이 너무 컸음을 알았습니다.
다른 어린이 신발의 마지막 답변은 최종 해결책을 지적했습니다.
"여기에서 내용을 참조 할 수 있습니다 : //www.vevb.com/article/54217.htm (템플릿 교체)
템플릿 교체 규칙을 사용하면 페이지의 모든 __public__ 문자열이 교체됩니다. __public__ 문자열을 템플릿에 실제로 출력 해야하는 경우 대체 규칙을 추가 할 수 있습니다.
다음과 같이 코드를 복사합니다. 'tmpl_parse_string'=> array (
'--public--'=> '__public__', // 출력/공개 문자열에 새 규칙을 사용
))
이런 방식으로 교체 규칙을 추가 한 후 __public__ 문자열을 출력하려면 템플릿에 -public을 추가하면 다른 교체 문자열의 출력 메소드가 비슷합니다.
이런 방식으로 교체 규칙을 추가 한 후 __public__ 문자열을 출력하려면 템플릿에 -public을 추가하면 다른 교체 문자열의 출력 메소드가 비슷합니다.
그래서 계획이 발표되었습니다.
tp의 구성 파일 config.php에서 구성합니다
다음과 같이 코드를 복사하십시오 : 'tmpl_parse_string'=> 배열 (// 경로 구성
// TIMI 파일 경로를 복원합니다
'-public-'=> '__public__',
'-app--'=> '__app__',
'--url-'=> '__url__',
'-Accient-'=> '__action__',
'-self--'=> '__self__',
'-info--'=> '__info__',
'--ext--'=> '__ext__'
),)
소스 코드를 읽을 때 "경로 상수 문자"__ROOT__를-root-로 바꾸십시오.
코드 사본은 다음과 같습니다. $ filecontent = file_get_contents ($ filepath);
$ filecontent = htmlspecialchars (preg_replace ( '/__(.*?)__/ is', '-$ 1-', $ filecontent);
그런 다음 아래 그림과 같이 템플릿을 구문 분석 할 때 TMPL_PARSE_STRING 구성이 대체됩니다.
따라서이 문제는 "일시적으로"및 "완벽하게"해결되었습니다.
이 기사가 모든 사람의 ThinkPHP 프레임 워크 프로그래밍에 도움이되기를 바랍니다.