[ Guardian OfThe Blind @ 26.09.2002. 07:42 ] @
| 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 |
[ Gojko Vujovic @ 26.09.2002. 13:20 ] @
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..
[ leka @ 26.09.2002. 14:19 ] @
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.
[ Guardian OfThe Blind @ 29.09.2002. 23:25 ] @
č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...
[ Gojko Vujovic @ 08.10.2002. 22:58 ] @
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 ?
[ Guardian OfThe Blind @ 09.10.2002. 08:45 ] @
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...
[ Gojko Vujovic @ 09.10.2002. 18:35 ] @
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..
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.