Skip to content

Instantly share code, notes, and snippets.

@sonsongithub
Created October 18, 2011 14:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sonsongithub/1295562 to your computer and use it in GitHub Desktop.
Save sonsongithub/1295562 to your computer and use it in GitHub Desktop.
Why html tags won't be removed....?
@implementation NSString(hoge)
- (NSMutableString*)stringByEliminatingHTMLTag {
int i = 0;
NSMutableString* str = [NSMutableString string];
UniChar *p = (UniChar*)CFStringGetCharactersPtr((CFStringRef)self);
int length = [self length];
BOOL isCopied = NO;
if (p == NULL) {
p = (UniChar*)malloc(sizeof(UniChar) * length);
[self getCharacters:p];
isCopied = YES;
}
assert(p != NULL);
BOOL addFlag = YES;
for(i = 0; i< ([self length]); i++) {
if (*(p + i) == 0x3C) {
addFlag = NO;
}
else if (*(p + i) == 0x3E) {
addFlag = YES;
}
else if (addFlag) {
CFStringAppendCharacters((CFMutableStringRef)str, p+i, 1);
}
NSLog(@"%C", *(p + i));
NSLog(@"%@", str);
}
if (isCopied)
free(p);
return str;
}
+ (void)test {
NSString *sample = @"<font size=+1 color=#FF0000><b>書きこみ&クッキー確認</b></font><ul><br><br><b> </b><br>名前: <br>E-mail: sage<br>内容:<br>sage<br><br></ul><b>投稿確認<br>・投稿者は、投稿に関して発生する責任が全て投稿者に帰すことを承諾します。<br>・投稿者は、話題と無関係な広告の投稿に関して、相応の費用を支払うことを承諾します<br>21条ないし第28<br>対して再許諾する権利を含みます)を許諾しないことを承諾します。<br>・投稿者は、掲示板運営者あるいはその指定する者に対して、著作者人格権を一切行使しないことを承諾します。<br><br></b><form method=POST action=\"../test/bbs.cgi?guid=ON\"><input type=hidden name=subject value=\"\"><input TYPE=hidden NAME=FROM value=\"\"><input TYPE=hidden NAME=mail value=\"sage\"><input type=hidden name=MESSAGE value=\"sage\"><input type=hidden name=bbs value=newsplus><input type=hidden name=time value=1318941809><input type=hidden name=key value=1318932938><input type=hidden name=\"kibi\" value=\"dango\"><br><input type=submit value=\"上記全てを承諾して書き込む\" name=\"submit\"><br></form><br><br>現在、荒らし対策でクッキーを設定していないと書きこみできないようにしています。<br><font size=-1>(cookieを設定するとこの画面はでなくなります。)</font><br>";
NSLog(@"%@", [sample stringByEliminatingHTMLTag]);
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment