![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 14 Dołączył: 8.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam. W wyrazeniach regularnych PERL-a użycie wyrażenia (.*?) we wzorcu powoduje wyszukanie najkrótszego dowolnego wzorca.
Wyrazenie (.*) czy tam (.?) (juz nie pamietam) powoduje wyszukanie najdłuzszego dowolnego wzorca. Czy jest mozliwosc wyszukania dowolnego najdłuższego wzorca? potrzebuje tego do parsera ktory wytnie z kodu HTML te znaczniki ktore da sie zamienic na bbcode. wyrazenie <span style="color: red">tekst czerwony <span style="font-style: italic">i pochylony</span></span> nie zamienia sie poprawnie na tekst czerwonyi pochylony tylko wychodzi tekst czerwony<span style="font-style: italic">. Cos takiego wychodzi. W kazdym razie powinien skoczyc do najdalszego znacznika span, a on skacze do najkrótszego. Nie da sie uzyc <b> <i> <u> poniewaz po wlaczeniu contentEditable w mozilli wykonanie polecenia mozilli exec("Bold") powoduje wstawienie do kodu nie <b> a wlasnie <span style="Font-weight: bold">... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 14 Dołączył: 8.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Po to ze mam na stronie edytor wizualny ktory pozwala na edycje w trybie wysiwyg. I wypluwa on jako wynik HTML ktory trzeba zamienic na bbcode, to co zostanie objechac html special chars oraz strip tags i zamienic z powrotem na bezpieczny html ktory mozna wyswietlic na stronie.
I po to że jeżeli edytor wizualny zawiedzie aby uzytkownicy mogli włączyc sobie zwykly edytor BBCode. Wtedy rowniez trzeba zamienic HTML trzymany w bazie na bbcode aby umozliwic im edycje. Nie jestem w stanie zrobic ani sciagnac edytora Wysiwyg ktory bedzie działał na kazdej przegladarce wiec musi byc rozwiazanie alternatywne. Ok, znalazlem klase SimpleHTMLDomParser, zapowiada sie swietnie. Zastanawiam sie nad dwoma podejsciami do tematu: Przeskanowac cale drzewo dokumentu (parser tworzy drzewo DOM) i tam gdzie znajde atrybut "color" tworzyc [color] wokol zawartosci znacznika, gdzie znajde np p tworzyc [p], po zrzuceniu zawartosci drzewa do html bedzie to wygladalo np: <font color="red">blablabla</font> nastepnie wyciąć tagi strip_tags, a pozniej dla bezpieczenstwa zaaplikowac html special chars, lub po prostu przejrzec drzewo DOM i znaczniki które nie są <b> <i> <u> itd.. oraz atrybuty ktore nie są color="xxxx" itd itd. Rozwiazanie pierwsze jest bardziej klopotliwe, drugie pozwalaloby na wklejenie tekstu bezposrednio z innej strony lub z edytora z zachowaniem formatowania, ale jak mi ktos przemyci w jakims znaczniku onload="java script: <tu wstaw jakis destrukcyjny js>" to tez nie bedzie wesoło. Ten post edytował Orzeszekk 26.10.2011, 00:25:40 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 00:38 |