不必要的
最近在使用範本產生文件(特別是自述文件和許可證)的開發工具中出現了一個問題。一切都無縫運行,除了 字符不受影響。
為了說明該問題,請考慮以下程式碼片段:
<code class="pawn">#include <{{.Repo}}></code>
此處,應按預期插入Repo 參數,結果為:
#include <sometext>
然而,實際結果是:
#include &lt;sometext>
文件分析並未對此行為提供明確的解釋。對 > 來說這似乎不合邏輯。字符保持不受影響,而
解決方案在於理解 html/template 的用途。它專為產生 HTML 輸出而設計,提供自動上下文相關轉義以防止程式碼注入。文件明確指出:
html/template 僅用於產生 HTML 輸出。它提供與套件 text/template 相同的接口,並且只要輸出是 HTML,就應該使用它來代替 text/template。
當輸出不是 HTML 時,就像這裡的自述文件一樣,它是使用文字/模板更合適。此模板引擎不會轉義數據,解決了不必要的字元轉換問題。透過切換到text/template,實現了預期的輸出:
#include <sometext>
html/template 和text/template 之間的區別確保僅在必要時應用上下文相關的轉義,從而防止非預期的字符轉換。 -HTML輸出場景。
以上是為什麼我的是``?的詳細內容。更多資訊請關注PHP中文網其他相關文章!