Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Parser bb code i listy
Forum PHP.pl > Forum > PHP
Asmox
Witam, chciałem zrobić parser bb code i mam problem przy listach: chodzi o to, że nie mogę jakoś tak dobrać wzoru, żeby obsługiwał znaki nowej linii.
  1. $text = preg_replace('#\[ul\]((\[li\].+\[/li\])+)\[/ul\]#simx', "<ul>\\1</ul>", $text);

Tutaj nigdzie nie mam elementu nowej linii, bo nie wiedziałem już jak to napisać. Kombinowałem z różnymi nawiasami i różną liczbą backslashów, ale i tak nie działało. Jednak zanim ktoś mnie odeśle to manuala czy innych stron tego pokroju gdzie jest lista flag itd informuję, że to już przejrzałem. Jednak mimo tego po prostu nie wiem jak to zrobić.
matird
wale na ślepo: \n questionmark.gif?
croc
Chodzi Ci o to, żeby pozwolił na nowe linie czy żeby one miały jakieś specjalne znaczenie? Bo jeśli to pierwsze, to proponuję \s* między każdym znacznikiem. Użytkownik ma prawo wstawiać entery, tabulatory i spacje między elementami i powinny one być zignorowane.

Sugestia: nie lepiej zamiast [li]...[/li] dawać np. [*]...? Użytkownik nie musi mieć konieczności domykania elementów listy, bo między takie elementy i tak nie powinno się nic wstawiać.
Asmox
O, dzięki wielkie bo zadziałało :-)
Już tłumaczę dlaczego robiłem jak robiłem, a nie inaczej: To ma być parser BB Bode na własny użytek, żeby w bazie zamiast znaczników html trzymać bb code, który jest w niektórych miejscach bardziej wygodny.
@matird: no właśnie moje pierwsze podejścia to było walenie na ślepo \n, tylko że coś przy okazji kręciłem nie tak, bo nie chciało działać.
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.