strip_tags für C

10/08/2009 - 19:59 von Peter Mairhofer | Report spam
Hi,

Kennt jemand ein kleines Snippet in plain-C das in etwa das gleiche
erledigt wie strip_tags in PHP? Also von HTML Snippets alle Tags
entfernen. Einen eigenen Hack möchte ich mir nach Möglichkeit ersparen...

lg
Peter
 

Lesen sie die antworten

#1 Just Pronto
10/08/2009 - 20:45 | Warnen spam
Peter Mairhofer schrieb:

Hi,

Kennt jemand ein kleines Snippet in plain-C das in etwa das gleiche
erledigt wie strip_tags in PHP? Also von HTML Snippets alle Tags
entfernen. Einen eigenen Hack möchte ich mir nach Möglichkeit ersparen...



Ich hab mal geschaut...

Der Code ist als Monstrum im PHP-Source Code in string.c verbuddelt,
an kann da praktisch kaum was entnehmen.

Es gibt auch Code in C# und sogar in Java-script.

Aber das hier ist der Knüller:

http://www.stratulat.com/blog/jspja...e-function

Super, super sauberer Code, den man auch als nicht javakundiger
sofort nnàmlich als Metacode, versteht.

Weil der Code so schön ist, erlaube ich mir mal die 16 Zeilen
zu zitieren:

1: public static String strip_tags(String text, String allowedTags) {
2: String[] tag_list = allowedTags.split(",");
3: Arrays.sort(tag_list);
4:
5: final Pattern p =
Pattern.compile("<[/!]?([^\\\\s>]*)\\\\s*[^>]*>",
Pattern.CASE_INSENSITIVE);
6:
7: Matcher m = p.matcher(text);
8:
9: StringBuffer out = new StringBuffer();
10: int lastPos = 0;
11: while (m.find()) {
12: String tag = m.group(1);
13: // if tag not allowed: skip it
14: if (Arrays.binarySearch(tag_list, tag) < 0) {
15: out.append(text.substring(lastPos, m.start())).append(" ");
16:
17: } else {
18: out.append(text.substring(lastPos, m.end()));
19: }
20: lastPos = m.end();
21: }
22: if (lastPos > 0) {
23: out.append(text.substring(lastPos));
24: return out.toString().trim();
25: } else {
26: return text;
27: }
28: }

Ähnliche fragen