"avatars/avatar.png"와 같은 문자열을 전달하고 싶지만 이를 템플릿에 전달하면 문자 이스케이프가 발생합니다. 그래서 템플릿에 전달되는 함수를 작성했습니다:
으아아아하지만 여전히 "정의되지 않은 함수 'unescape'"라는 메시지가 표시됩니다. unescape가 정의되지 않았습니까?
"net/url"을 가져왔습니다.
unescape가 정의되지 않았나요?
기술적으로는 그렇지 않습니다. 정의를 내리셨는데 너무 늦었습니다. 함수 정의 여부는 실행 중이 아닌 파싱 중에 확인됩니다. 당신은 parseglob
,然后您执行 tpl.func(...)
. 그것은 정상이 아닙니다.
대신 이렇게 하세요:
으아아아이스케이프는 입력이 아닌 출력에 있는 데이터와 에 있는 데이터로 작업하는 컨텍스트unescape
可能不会帮助您“欺骗”您的方式,因为转义将会完成在 unescape
에 따라 발생하는 안전한 기능입니다.
즉, {{unescape .}}
를 수행하면 구문 분석기가 컨텍스트에 따라 이를 {{unescape .}}
로 변환할 수 있습니다(urlescaper는 내부 이스케이프 함수입니다. 이를 방지하려면 템플릿에서 {{unescape .}}
时,解析器可能会根据上下文将其转换为 {{unescape . | urlescaper}}
(urlescaper
是一个内部转义函数)。为了避免这种情况,当您想要在模板中逐字使用已知的安全字符串时,您应该使用 输入字符串而不是 unescape
알려진 안전한 문자열
unescape
대신 문자열 Playground 예제패키지 설명서🎜를 참조하세요. 모든 것이 명확하게 설명되어 있습니다. 🎜위 내용은 템플릿에서 '/'를 이스케이프하세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!