例如程式碼中的 大於"<" 、 小於">" 等符號。
PHP程式可以用:
- htmlspecialchars
- htmlentities
今天又遇到需要輸出大量程式碼的問題,再度認真google一下,發現Apache Commons Lang有提供StringEscapeUtils。
下載 Apache Commons Lang 。
直接呼叫static method即可,用起來算是方便。
org.apache.commons.lang.StringEscapeUtils.escapeHtml(source_text)
這是目前我覺得滿意的解決方式,因為 Apache Commons 出品可以信賴,另外它也提供很豐富的功能(參考文末提供function list)。要說有什麼缺點,我想應該就是殺雞用牛刀的問題吧,為了一個小功能又要放進新的library,而且只用到其中一個class的一個method。不過在開發J2EE應用時,我已經不太在乎殺雞是不是用牛刀,目前手邊的專案規模還很小,但 WEB-INF/lib 資料夾就已有36個JAR檔,God bless my java。
CSV、HTML、Java、JavaScript、SQL、XML一包搞定。
static String escapeCsv(String str) static void escapeCsv(Writer out, String str) static String escapeHtml(String str) static void escapeHtml(Writer writer, String string) static String escapeJava(String str) static void escapeJava(Writer out, String str) static String escapeJavaScript(String str) static void escapeJavaScript(Writer out, String str) static String escapeSql(String str) static String escapeXml(String str) static void escapeXml(Writer writer, String str) static String unescapeCsv(String str) static void unescapeCsv(Writer out, String str) static String unescapeHtml(String str) static void unescapeHtml(Writer writer, String string) static String unescapeJava(String str) static void unescapeJava(Writer out, String str) static String unescapeJavaScript(String str) static void unescapeJavaScript(Writer out, String str) static String unescapeXml(String str) static void unescapeXml(Writer writer, String str)
沒有留言:
張貼留言