>  기사  >  백엔드 개발  >  내 ``는 왜?

내 ``는 왜?

Susan Sarandon
Susan Sarandon원래의
2024-11-06 21:34:02166검색

Why is my ``?

불필요 < HTML 템플릿에서 이스케이프 처리: 텍스트/템플릿으로 해결

파일 생성용 템플릿, 특히 Readme 및 라이센스를 활용하는 개발 도구 내에서 최근 문제가 발생했습니다. < 문자는 <로 변환됩니다. 그러나 해당 > 문자는 영향을 받지 않은 채로 남아 있습니다.

문제를 설명하려면 다음 코드 조각을 고려하십시오.

<code class="pawn">#include <{{.Repo}}></code>

여기서 Repo 매개변수는 예상대로 삽입되어야 하며 결과는 다음과 같습니다.

#include <sometext>

그러나 실제 결과는 다음과 같습니다.

#include &amp;lt;sometext>

문서 분석에서는 이 동작에 대한 명확한 설명을 제공하지 못했습니다. > < 문자가 탈출했습니다.

해결책은 html/템플릿의 목적을 이해하는 데 있습니다. HTML 출력을 생성하기 위해 특별히 설계되었으며, 코드 삽입을 방지하기 위해 자동으로 상황에 맞는 이스케이프 기능을 제공합니다. 문서에는 다음과 같이 명확하게 명시되어 있습니다.

html/template은 HTML 출력을 생성하는 데만 사용됩니다. 패키지 텍스트/템플릿과 동일한 인터페이스를 제공하며 출력이 HTML일 때마다 텍스트/템플릿 대신 사용해야 합니다.

여기 Readme 파일의 경우처럼 출력이 HTML이 아닌 경우에는 다음과 같습니다. 텍스트/템플릿을 사용하는 것이 더 적합합니다. 이 템플릿 엔진은 데이터를 이스케이프하지 않아 불필요한 문자 변환 문제를 해결합니다. 텍스트/템플릿으로 전환하여 예상한 출력을 얻었습니다.

#include <sometext>

html/템플릿과 텍스트/템플릿의 이러한 구별은 필요한 경우에만 상황에 맞는 이스케이프가 적용되도록 보장하여 비언어에서 예기치 않은 문자 변환을 방지합니다. -HTML 출력 시나리오.

위 내용은 내 ``는 왜?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.