私はIBからこのインターフェースを持っています。「詳細」でわかるように、そのUITextfield
中にはたくさんの HTML コードがあります。
バックエンドでもできるように、背後にPHPサーバーがあります。これを実行する最良の方法は何ですか?
私はIBからこのインターフェースを持っています。「詳細」でわかるように、そのUITextfield
中にはたくさんの HTML コードがあります。
バックエンドでもできるように、背後にPHPサーバーがあります。これを実行する最良の方法は何ですか?
これを使用して HTML を文字列に変換できます。
NSRange range;
NSString *string;
while ((range = [string rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound){
string=[string stringByReplacingCharactersInRange:range withString:@""];
}
NSLog(@"Un block string : %@",string);
ただし、テキストに <> が含まれている場合は削除されます
ほんの小さな断片であっても、パーサーを使用して html を解析する必要があります。AKV は RegEx を使用することを提案していますが、正しい RegEx が見つかるかどうかは非常に疑わしいです。こちらも参照してください。つまり<a href="foo" title="5>3">
、AKV の正規表現を混乱させる有効な html です。
iOS には libXML2 を使用できる C-lib が搭載されていますが、実際にはその周りにラッパーを使用する必要があります。Objective-C-HMTL-Parserはシンプルで優れていると思います。
あなたはそれを次のように使用します
HTMLParser *parser = [[HTMLParser alloc] initWithString:html error:&error];
HTMLNode *bodyNode = [parser body];
NSString *string = [bodyNode allContents];
HTMLNode には他の HTMLNode を子として含めることができるため、その情報をテキストの書式設定にも使用できます。
これがオプションである場合、HTML を NSAttributedStrings に解析するための優れたDTCoreTextプロジェクトもあります。
透明な背景を持つ UIWebView で表示すると、すべての HTML タグが引き続き機能します。UIWebView を UITextView と同じサイズにして、同じ場所に配置するだけです!
HTML 文字列を webView にロードするときは、透明な背景にこのコードを使用します。
finalhtmlstring = [NSString stringWithFormat:@"<html><head></head><body style='background-color:transparent;'>%@</body></html>",htmlstring];
[myWebView loadHTMLString:finalhtmlstring baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];
また、(xib ファイルで) webView の背景自体を 0% アルファに設定し、「不透明」ボックスを切り替えていることを確認してください...
最後に、xib ファイルにデリゲートを設定し、.h ファイルに追加することを忘れないでください<UIWebViewDelegate>
。