Thinkphp 템플릿이 is_javascript 스킬 그대로 파싱하여 직접 출력하지 못하는 문제 해결
본 글의 예시에서는 Thinkphp 템플릿이 파싱되지 않고 그대로 출력되는 문제에 대한 해결방법을 설명하고 있습니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 내용은 다음과 같습니다.
1. 질문:
최근에 thinkphp 템플릿을 배우고 있는데, 템플릿 페이지가 그대로 나오더군요. 열심히 검색한 끝에 드디어 해결 방법을 찾았습니다.
2. 해결책:
많은 사람들이 동일한 문제를 겪었습니다. 변수에 할당된 문자열에 포함된 __ROOT__, __PUBLIC__, __APP__은 템플릿에 표시될 때 실제 경로로 대체됩니다. Timi 파일 관리 시스템을 작성하는 동안 이 문제를 발견했습니다.
파일에서 소스 코드를 읽고 페이지에 출력한 결과 TP 경로 문자인 한 실제 경로로 대체된 것을 발견했습니다.
예:
페이지가 출력된 후에는 실제 경로 /public/으로 표시됩니다.
이 기간 동안 할당 시 base64 암호화, 템플릿 출력 시 디코딩 등 여러 가지 시도를 해보았으나 실패했습니다. 마지막으로 Tp의 소스 코드를 살펴보지 않을 수 없었고, 표시 메소드의 마지막 단계에서 태그 메소드를 호출하여 "Tp 경로 상수"가 실제 경로로 대체되었음을 발견했습니다. 렌더링 방법 이전에는 모든 것이 정상입니다.
원래 어린이 신발에 대한 다음 솔루션을 구현하기 위해 소스 코드를 변경할 계획이었습니다.
사장님, 이게 일시적인 해결책인가요, 아니면 최종적인 해결책인가요?
하지만 Assign() 메소드에 판단을 추가하는 것도 나쁘지 않다고 생각합니다.
$this->sign('','',false)인 경우 내용은 교체되지 않고 그대로 출력됩니다.
결과적으로 이 소스코드를 읽어보니 그게 쉽지 않고 변경사항이 너무 크다는 걸 깨달았습니다.
최종 해결책을 지적한 다른 어린이의 마지막 답변:
"여기에서 내용을 참조할 수 있습니다: http://www.jb51.net/article/54217.htm(템플릿 교체)
템플릿 교체 규칙을 사용하면 페이지의 모든 __PUBLIC__ 문자열이 교체됩니다. 실제로 __PUBLIC__ 문자열을 템플릿에 출력해야 하는 경우 교체 규칙을 추가할 수 있습니다. 예:
'--PUBLIC--' => '__PUBLIC__', // /Public 문자열을 출력하는 데 새로운 규칙을 사용합니다
)
이런 식으로 대체 규칙을 추가한 후 __PUBLIC__ 문자열을 출력하려면 템플릿에 --PUBLIC--만 추가하면 됩니다. 다른 대체 문자열의 출력 방법도 비슷합니다.
이런 방식으로 대체 규칙을 추가한 후 __PUBLIC__ 문자열을 출력하려면 템플릿에 --PUBLIC--만 추가하면 됩니다. 다른 대체 문자열의 출력 방법도 비슷합니다.
그래서 계획이 공개되었습니다.
Tp의 구성 파일 config.php에서 구성
//티미 파일 경로 복원
'--PUBLIC--' => '__PUBLIC__',
'--APP--' => '__APP__',
'--URL--' => '__URL__',
'--ACTION--' => '__ACTION__',
'--SELF--' => '__SELF__',
'--INFO--' => '__INFO__',
'--EXT--' => '__EXT__'
),
소스 코드를 읽을 때 "경로 상수 문자" __ROOT__를 --ROOT--로 바꾸세요.
$fileContent=htmlspecialchars(preg_replace('/__(.*?)__/is','--$1--',$fileContent));
그러면 아래 그림과 같이 템플릿이 구문 분석될 때 TMPL_PARSE_STRING 구성이 대체됩니다.
이후 이 문제는 '일시적으로', '완벽하게' 해결되었습니다.
이 글이 모든 분들의 ThinkPHP 프레임워크 프로그래밍에 도움이 되기를 바랍니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









어떤 경우에는 부정적인 마진이 적용되지 않는 이유는 무엇입니까? 프로그래밍 중에 CSS의 부정적인 마진 (음수 ...

요소 수가 고정되지 않은 경우 CSS를 통해 지정된 클래스 이름의 첫 번째 자식 요소를 선택하는 방법. HTML 구조를 처리 할 때 종종 다른 요소를 만듭니다 ...

사용자 에이전트 스타일 시트로 인한 디스플레이 문제를 해결하는 방법은 무엇입니까? 에지 브라우저를 사용하는 경우 프로젝트의 DIV 요소를 표시 할 수 없습니다. 확인 후 게시했습니다 ...

PS "로드"문제는 자원 액세스 또는 처리 문제로 인한 것입니다. 하드 디스크 판독 속도는 느리거나 나쁘다 : CrystalDiskinfo를 사용하여 하드 디스크 건강을 확인하고 문제가있는 하드 디스크를 교체하십시오. 불충분 한 메모리 : 고해상도 이미지 및 복잡한 레이어 처리에 대한 PS의 요구를 충족시키기 위해 메모리 업그레이드 메모리. 그래픽 카드 드라이버는 구식 또는 손상됩니다. 운전자를 업데이트하여 PS와 그래픽 카드 간의 통신을 최적화하십시오. 파일 경로는 너무 길거나 파일 이름에는 특수 문자가 있습니다. 짧은 경로를 사용하고 특수 문자를 피하십시오. PS 자체 문제 : PS 설치 프로그램을 다시 설치하거나 수리하십시오.

어떤 경우에는 부정적인 마진이 적용되지 않는 이유는 무엇입니까? CSS를 사용하여 레이아웃 웹 페이지를 사용하는 경우 종종 부정적인 여백이 발생합니다 (음수 ...

텍스트 그라디언트에 그림자를 추가 할 때 할아버지 배경에 대한 솔루션은 의사 요소를 차단합니다. 텍스트 그라디언트에 그림자를 추가 할 때, 의사 요소 및 절대 포지셔닝은 일반적으로 사용됩니다 ...

부팅 할 때 "로드"에 PS가 붙어있는 여러 가지 이유로 인해 발생할 수 있습니다. 손상되거나 충돌하는 플러그인을 비활성화합니다. 손상된 구성 파일을 삭제하거나 바꾸십시오. 불충분 한 메모리를 피하기 위해 불필요한 프로그램을 닫거나 메모리를 업그레이드하십시오. 하드 드라이브 독서 속도를 높이기 위해 솔리드 스테이트 드라이브로 업그레이드하십시오. 손상된 시스템 파일 또는 설치 패키지 문제를 복구하기 위해 PS를 다시 설치합니다. 시작 오류 로그 분석의 시작 과정에서 오류 정보를 봅니다.

두 개의 인라인 블록 요소의 오정렬 한 이유에 대해 논의합니다. 프론트 엔드 개발에서 우리는 종종 인라인 블록을 사용할 때 요소 조판 문제를 종종 발생합니다 ...
