Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak lepiej trzymać BB Code w bazie?
Forum PHP.pl > Forum > PHP
szymonnn
Mam na mojej stronie edytor tekstu, gdzie można używać BB Code (tak jak tutaj na forum), powiedzmy jeśli chcę dodać jakiś odsyłacz, klikam na odpowiedni guzik i javascript wstawia mi do textarea [a="url"]"Opis linka"[/a].

Teraz pytanie - czy lepiej stworzyć funkcję, która będzie parsowała BB Code na html [a]Opis[/a] => <a href=url>Opis</a> i tak zapisywala w bazie gotowy html, a gdy bedziemy chcieli tekst edytować, to użyć funkcji, która będzie parsowała tekst z powrotem na BB Code. Czy może nic nie zmieniać i zapisywać BB Code w bazie, a potem funkcję parsujacą BBCode2HTML uruchamiać przy każdym odczycie tekstu z bazy przez użytkownika.

Plusy parsowania przed wstawieniem do bazy:
- gdy odczytuję tekst, to wykonuje się to szybciej, nie trzeba zamieniać BB Code na kod html, bo już go mamy w bazie
Minusy parsowania przed wstawieniem do bazy:
- gdy zechcę zmienić działanie BB Code, a już są gotowe teksty w bazie, to trochę ciężko o spójność
- jeśli np. zechcę użyć do bazy wyniku funkcji podświetlającej kod (geshi), to będzie potrzebne duuuużo miejsca

Plusy parsowania wraz z odczytywaniem tekstu:
- spójność ze zmianami
- mniej miejsca potrzebne w bazie
- jeśli chcę edytować tekst, to nie trzeba się bawić w parsowanie go z powrotem na BB Code
Minusy parsowania wraz z odczytywaniem tekstu:
- wolniej, trzeba parsować każdy tekst przed odczytaniem

Co jest lepsze?
wookieb
Osobiście jestem za trzymaniem tekstu wraz z bbcode na bazie. Łatwo wtedy edytować i przedstawić w sposób czytelny dla użytkownika.
Poza tym z transformacją html na bbcode może być czasem mnóstwo problemów.

Wade parsowania kodu ponownie rozwiązałem w swojej klasie z sygnaturki. http://forum.php.pl/index.php?showtopic=11...mp;#entry578439
Jest tam coś takiego jak generowanie zaufanego kodu html.
W momencie pierwszego parsowania klasa potrafi wywalić zbedne tagi bb, poukladac je w zgodnosci tagowej i nastepnie taka wersje zapisujesz do bazy. Przy ponownym odczytaniu oznaczasz kod bb jako zaufany przez co parsowanie jest szybsze.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.