yakından PHP'nin varsayılan htmlspecialchars (str) çoğaltmak için bazı java kodu Mümkün olduğunca:
İlk nasıl PHP'nin htmlspecialchars(str)
eserleri bakmak sağlar:
php> echo htmlspecialchars("abc\ndef");
abc
def
php> echo htmlspecialchars("abc&def");
abc&def
php> echo htmlspecialchars("abc<>\"&def");
abc<>"&def
php> echo htmlspecialchars("abc<>\"&d'ef");
abc<>"&d'ef
php> echo htmlspecialchars("abc< >\"&d'ef");
abc< >"&d'ef
php> echo htmlspecialchars("abc def");
abc def
php>
Notlar: olduğu gibi
- Spaces ve satırbaşları tutulur.
- Tanımlanan varlıklar örnek başına bir kez değiştirilir.
- Telif hakkı
©
ve euro sembolü €
gibi ekstra kanatlar olduğu gibi tutulur.
kodu:
public class Main{
public static void main(String[] args) {
System.out.println("'" + stringToHtmlString("&") + "'");
System.out.println("'" + stringToHtmlString("<") + "'");
System.out.println("'" + stringToHtmlString(">") + "'");
System.out.println("'" + stringToHtmlString(" ") + "'");
System.out.println("'" + stringToHtmlString(" ") + "'");
System.out.println("'" + stringToHtmlString("&<>abc") + "'");
System.out.println("'" + stringToHtmlString("abc&<>") + "'");
}
public static final String stringToHtmlString(String s){
StringBuffer sb = new StringBuffer();
int n = s.length();
for (int i = 0; i < n; i++) {
char c = s.charAt(i);
switch (c) {
case '<': sb.append("<"); break;
case '>': sb.append(">"); break;
case '&': sb.append("&"); break;
case '"': sb.append("""); break;
default: sb.append(c); break;
}
}
return sb.toString();
}
}
yazdırır:
[email protected] ~ $ java Main
'&'
'<'
'>'
' '
' '
'&<>abc'
'abc&<>'
Bu PHP'nin htmlspecialchars(str)
fonksiyonun mükemmel klon değil, ama benim için yeterince yakın.
İşte Karartılmış karakter setleri için html varlık dönüşümleri yapar ki başka bir şeydir:
public String toHTML(String str) {
String out = "";
for (char c: str.toCharArray()) {
if(!Character.isLetterOrDigit(c))
out += String.format("&#x%x;", (int)c);
else
out += String.format("%s", c);
}
return out;
}
: http://www.rgagnon.com/javadetails/java-0306.html
Böyle bir girişiniz varsa (HTML'siz çıkışsız HTML ile karıştırılmış), zaten potansiyel olarak değerlendirildiniz. HTML özel karakterlerinden kaçınmak, gerçek HTML ile belirsizliği önlemek için özellikle ileride çözülmesi mümkün olmayabilir. – deceze
Yukarıdaki örnek tam olarak olduğu gibi yapılamaz. Metniniz geçerli bir HTML değildir ve uygun davranışı düzgün bir şekilde tanımlayamadığınız için araçları bulamazsınız ve geçerli HTML'de düzgün şekilde çalışan programlar yazamazsınız. – Notinlist
Ben java kullanıyorum ... – Roshan