Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Własna implementacja BBCode
akurczyk
post
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


Napisałem własną implementacje BBCode:
  1. <?php
  2. function bbcode($tekst) {
  3.     $tekst = htmlspecialchars($tekst); Wyłączenie możliwości stosowania znaczników HTML
  4.     $tekst = preg_replace("#(.*?)#si", "<b>1</b>", $tekst); Pogrubiony tekst
  5.     $tekst = preg_replace("#(.*?)#si", "<i>1</i>", $tekst); Pochylony tekst
  6.     $tekst = preg_replace("#(.*?)#si", "<u>1</u>", $tekst); Podkreślony tekst
  7.     $tekst = preg_replace("#[quot](.*?)[/quot]#si", "<blockquot>1</blockquot>", $tekst); Cytat
  8.     $tekst = preg_replace("#[code](.*?)[/code]#si", "<pre>1</pre>", $tekst); Kod
  9.     $tekst = preg_replace("#(.*?)#si", "<span style=\"color: 2;\">3</span>", $tekst); Kolor tekstu
  10.     $tekst = preg_replace("#(.*?)#si", "<span style=\"font-size: 2;\">3</span>", $tekst); Czcionka
  11.     $tekst = preg_replace("#[ul](.*?)[/ul]#si", "<ul>1</ul>", $tekst); Ponumerowanie
  12.     $tekst = preg_replace("#[ol](.*?)[/ol]#si", "<ol>1</ol>", $tekst); Wypunktowanie
  13.     $tekst = preg_replace("#[li](.*?)[/li]#si", "<li>1</li>", $tekst); Punkt
  14.     $tekst = preg_replace("#(.*?)#si", "<a href=\"2\">3</a>", $tekst); Link
  15.     $tekst = preg_replace("#[img](.*?)[/img]#si", "<img src=\"1\">", $tekst); Obrazek
  16.     $tekst = nl2br($tekst); Dodanie kolejnej linii
  17.     return $tekst; Wynik
  18. }
  19. echo bbcode("Tekst do sformatowania"); Wyświetlenie sformatowanego tekstu
  20. ?>

I pojawił się problem w tagu code (pre) każda linia jest poprzedzona jedną pustą linią.
Problem ten znika gdy za komentuję nl2br, ale wtedy tekst poza code nie jest łamany.
Proszę o pomoc

Ten post edytował akurczyk 13.10.2008, 21:46:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
akurczyk
post
Post #2





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


trim służy do obcięcia tekstu:D
a nl2br służy do zamiany ENTERÓW na <br> więc tego nie mogę wywalić:D
Proszę o pomoc
Go to the top of the page
+Quote Post
pyro
post
Post #3





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(akurczyk @ 13.10.2008, 19:18:04 ) *
ENTERÓW


enter to taki przycisk na klawiaturze, a to sie nazywa znak nowej lini (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

wsadz ten kod w znacznik [ php ], bo mam wrazenie ze sa dodawane dodatkowe "\"
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: 12.10.2025 - 02:36