Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]kod html do bbcode
GoOx
post
Post #1





Grupa: Zarejestrowani
Postów: 329
Pomógł: 6
Dołączył: 23.11.2011
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Siemka,

ostatnio na moim forum zacząłem robić bbcode lecz mam problem

  1. $tresc = nl2br($tresc);
  2. $tresc = preg_replace("#\[b\](.*?)\[/b\]#si",'<b>\\1</b>',$tresc);
  3. $tresc = preg_replace("#\[i\](.*?)\[/i\]#si",'<i>\\1</i>',$tresc);
  4. $tresc = preg_replace("#\[u\](.*?)\[/u\]#si",'<u>\\1</u>',$tresc);
  5. $tresc = preg_replace("#\[s\](.*?)\[/s\]#si",'<s>\\1</s>',$tresc);


to wszystko super działa ale jak zrobić by podczas edycji nie były odczytywane kody html tylko s powrotem do bbcode przerobione?

a i zostaje kwestia nowej linji jak zrobić by podczas edycji postu <br /> było niewidoczne?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lobopol
post
Post #2





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


Masz 2 opcje:
1. W bazie trzymać tylko nieprzerobiony tekst czyli:
  1. [b]tralala[/b]

i przy wyświetlaniu parsować do html
2. W bazie trzymać sparsowany i niesparsowany tekst w dwóch polach w tabeli czyli
  1. tab1 = [b]tralala[/b]
  2. tab2 =<b>tralala</b>

i przy edycji wyświetlać tekst niesparsowany, a po zapisie zmieniać obie wartości w tablicy. Przy wyświetlaniu podawać już tekst przerobiony.

Oba wyjścia mają zalety i wady:
1. Mniej zajmuje, mniej kłopotliwa edycja, bardziej obciążające wyświetlanie
2. Więcej zajmuje(ponad 2 razy), bardziej kłopotliwa edycja (niedużo), mniej obciążające wyświetlanie

Istnieje jeszcze 3 opcja, parsować przy edycji kod html do bbcode na zasadzie:
  1. $tresc = preg_replace("#\<b\>(.*?)\</b\>#si",'[.b]\\1[/b]',$tresc);

Ale to byłoby dość dzikie

Ten post edytował lobopol 4.02.2012, 09:55:10
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 03:16