首頁  >  文章  >  後端開發  >  為什麼我的是``?

為什麼我的是``?

Susan Sarandon
Susan Sarandon原創
2024-11-06 21:34:02166瀏覽

Why is my ``?

不必要的

最近在使用範本產生文件(特別是自述文件和許可證)的開發工具中出現了一個問題。一切都無縫運行,除了 字符不受影響。

為了說明該問題,請考慮以下程式碼片段:

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

此處,應按預期插入Repo 參數,結果為:

#include <sometext>

然而,實際結果是:

#include &amp;lt;sometext>

文件分析並未對此行為提供明確的解釋。對 > 來說這似乎不合邏輯。字符保持不受影響,而

解決方案在於理解 html/template 的用途。它專為產生 HTML 輸出而設計,提供自動上下文相關轉義以防止程式碼注入。文件明確指出:

html/template 僅用於產生 HTML 輸出。它提供與套件 text/template 相同的接口,並且只要輸出是 HTML,就應該使用它來代替 text/template。

當輸出不是 HTML 時,就像這裡的自述文件一樣,它是使用文字/模板更合適。此模板引擎不會轉義數據,解決了不必要的字元轉換問題。透過切換到text/template,實現了預期的輸出:

#include <sometext>

html/template 和text/template 之間的區別確保僅在必要時應用上下文相關的轉義,從而防止非預期的字符轉換。 -HTML輸出場景。

以上是為什麼我的是``?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn