Napravio sam funkciju koja prebacuje "bbcode" u html pre prikazivanja, sa standardnim funkcijama nl2br,b,i,u,list, medjutim kod liste se pojavio problem: između list tagova nije dozvoljeno <br /> po xhtml standardu; a pošto nisam toliko (uopšte) iskusan sa reg exp. treba mi zamena za nl2br koja neće raditi unutar [list] [/list] ili izraz koji ce izbaciti <br /> ove iz list dela posle odradjenog nl2br na celom tekstu
XHTML zahtevi i regular expression
Zaključano
Zakačeno
E ovo i meni treba. I da ne dozvoljava pogresno nested liste tipa:
[list][/list][list][/list]
Dakle da ne radi zamenu <br> ili nekog slicnog tag-a unutar [list][/list].
Moze i par komada regexp-a i neki kod, ne mora sve u jedan da stane. Php na primer ? :) Perl ? svejedno..
[list][/list][list][/list]
Dakle da ne radi zamenu <br> ili nekog slicnog tag-a unutar [list][/list].
Moze i par komada regexp-a i neki kod, ne mora sve u jedan da stane. Php na primer ? :) Perl ? svejedno..
Gojko, ti dobro znas da sam ja RegExp obozavatelj, sto taj problem ranije nisi poslao ovde? ;) Okej ljudi imacete resenje kad malo izadjem iz guzve.
Potpis
čisto da kažem da sam našao privremeno rešenje pre nego što leka da the-ultimate-rich-text-regexp :)
$tekst = preg_replace("#\n*\[\*\](.*?)\[/\*\]#si", "<li>\\1</li>", $tekst);
pa tek onda:
$tekst = nl2br($tekst);
znači, ispred [*] briše sve new line karaktere pre konverzije... jedino što trenutno od korisnika zahtevam da napravi i [/*] mada bi mogao da stavim
$tekst = preg_replace("#\n*\[\*\](.*?)\n#si", "<li>\\1</li>", $tekst);
ali onda nije lepo svaka opcija u jednom redu...
$tekst = preg_replace("#\n*\[\*\](.*?)\[/\*\]#si", "<li>\\1</li>", $tekst);
pa tek onda:
$tekst = nl2br($tekst);
znači, ispred [*] briše sve new line karaktere pre konverzije... jedino što trenutno od korisnika zahtevam da napravi i [/*] mada bi mogao da stavim
$tekst = preg_replace("#\n*\[\*\](.*?)\n#si", "<li>\\1</li>", $tekst);
ali onda nije lepo svaka opcija u jednom redu...
Guardian, ne valja ti taj regexp. Pocev od * koji matchuje karakter pre sebe, a tu nisi stavio tacku (.) da matchuje sve zivo nego escapeovanu zagradu [.
Ne znam bas kako si zamislio da to radi..
sto ne navedes \[list\] ? Zasto savki [ tag ] [ /tag ] da ti pretvara u listu ?
Ne znam bas kako si zamislio da to radi..
sto ne navedes \[list\] ? Zasto savki [ tag ] [ /tag ] da ti pretvara u listu ?
ne, Gojko, ovo je za [*] tj elemente liste - tako sam ih obeležio njih slepi za [list][/list] tj ovako
[list]
[*]Prva stavka
[*]druga
[/list]
ide u ovo:
[list][*]Prva stavka[*]druga[/list]
vidiš prvo mečuje n puta new line ispred [*] a u outputu ga nema, a bilo šta uzima između [*] i opet novog reda koji takoćđe neće napisati... meni ovako radi...
[list]
[*]Prva stavka
[*]druga
[/list]
ide u ovo:
[list][*]Prva stavka[*]druga[/list]
vidiš prvo mečuje n puta new line ispred [*] a u outputu ga nema, a bilo šta uzima između [*] i opet novog reda koji takoćđe neće napisati... meni ovako radi...
Aha ok, razlikuju nam se potrebe očigledno, ja nešto drugo pokušavam da radim i izgleda da ne može bez najmanje 2-3 ciklusa parsinga..