PHP 편집자 Zimo가 Golang에 대한 작은 트릭을 소개하려고 왔습니다. html.Parse를 사용하여 HTML을 구문 분석할 때 때때로 & 기호를 포함하도록 href의 쿼리 문자열을 다시 작성해야 합니다. 이 기술은 HTML 링크를 처리할 때 더욱 유연하고 편리하며 개발 효율성을 향상시키는 데 도움이 될 수 있습니다. 다음으로 이 기술을 사용하는 방법을 자세히 설명하고 샘플 코드를 제공하여 모든 사람에게 도움이 되기를 바랍니다.
다음 코드가 있습니다:
으아아아html.render 함수는 다음과 같은 출력을 생성합니다.
으아아아쿼리 문자열을 다시 작성하고 &
转换为 &
(bar와 baz 사이)를 넣는 이유는 무엇입니까?
이 동작을 방지할 수 있는 방법이 있나요?
템플릿 변환을 하려고 하는데 URL이 깨지는 것을 원하지 않습니다.
html.parse
想要生成有效的 html,并且 html 规范规定 href
속성의 앰퍼샌드 를 인코딩해야 합니다.
https://www.w3.org/tr/xhtml1/guidelines .html#c_12
sgml 및 xml에서 앰퍼샌드 문자("&")는 엔터티 참조의 시작을 선언합니다(예: ®는 등록 상표 기호 "®"를 나타냄). 불행하게도 많은 html 사용자 에이전트는 html 문서에서 & 기호의 잘못된 사용을 조용히 무시합니다. 즉, 엔터티 참조처럼 보이지 않는 & 기호를 리터럴 & 기호로 처리합니다. XML 기반 사용자 에이전트는 이러한 잘못된 사용을 허용하지 않으며 & 기호를 잘못 사용하는 문서는 "유효"하지 않으므로 이 사양을 따르지 않습니다. 문서가 과거 HTML 사용자 에이전트 및 xml 기반 사용자 에이전트와 호환되도록 하려면 문서에 사용된 & 기호(리터럴 문자로 처리됨)가 그 자체를 엔터티 참조(예: "&")로 나타내야 합니다.
예를 들어 a 요소의 href 속성이 매개변수가 있는 cgi 스크립트를 참조하는 경우 http://my.site.dom/cgi-bin/myscript.pl?class=guest& name=user
而不是 http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user
로 표현해야 합니다.
이 경우 Go는 실제로 HTML을 더 좋고 효율적으로 만들어줍니다
즉, 브라우저가 이를 이스케이프하므로 클릭하면 결과 URL은 여전히 정확합니다(&
,只有 &
:
위 내용은 Golang html.Parse는 &를 포함하도록 href 쿼리 문자열을 다시 작성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!