Archief - PHP: String wegfilteren

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

horse_99

Legacy Member
Hoi,

Ik ben bezig met een simpele functie om bbcode om te zetten naar HTML. Ze is bijna af, maar er rest me nog één probleem. Ik zal het probleem uitleggen a.d.h.v. een voorbeeld:

Bbcode
Code:
[ul]
[li]item A[/li]
[li]item B[/li]
[/ul]

HTML
Code:
<ul><br /><li>item A</li><br /><li>item B</li><br /></ul>

De <br />'s tussen <ul> en </ul> zou ik dus graag weg willen filteren, omdat ze de weergave van de lijst verknoeien. Ik dacht het eerst simpel op te lossen m.b.v. CSS waarmee je een <br /> in een <ul> instelt op display: none. Helaas werkte dit niet. Ik zie niet meteen een mogelijkheid hoe ik de <br />'s zou kunnen weg krijgen. Kan iemand me enkele tips geven?

MVG, horse_99.

Brock

Legacy Member
met str_replace en strpos allese wegfiltereren door "" wat binnen <ul> en </ul> ligt is een optie

horse_99

Legacy Member
D.m.v. CSS is het probleem wel opgelost. CSS zat nog in de buffer van mijn browser denk ik. Ik wil de <br />'s toch nog graag weg krijgen. Kwestie van een propere code te hebben.

@ Bovenstaande reactie:

Ik begrijp het niet goed. Je achterhaalt bijvoorbeeld de positie van <ul> en </ul> . Laat ons zeggen bijvoorbeeld 500 en 600.

Wat moet ik dan doen? Dit stuk code wegknippen uit het geheel, d.m.v. substring(), de <br />'s vervangen van deze substring en daarna terug in het geheel plakken?

MVG, horse_99.

orez

Legacy Member
die br's komen er, omdat je 1. nl2br loslaat op je list, 2. je list opstelt aan de hand van enters. dus bv

[li]

[*]item 1[/*]

[*]item 2[/*]

[/li]

zo creeer je newline's.
Als je echt volledig zuiver wilt zijn, denk ik even snel een eigen nl2br functie te schrijven ook, die enkel uitgevoerd wordt, buiten een list.

Smoerf

Legacy Member
steek die newline/br (te zien of je al een nl2br gedaan hebt) gewoon in je reguliere expressie.

Dus vervang je [li](.+?)[/li]<br /> door <li>\\1</li> (en dan kan je eventueel de reguliere expressie zonder de br nog eens gebruiken voor mocht iemand een list als volgt opmaken [li]item1[/li][li]item2[/li])

Ramm

Legacy Member
of een replace van alle

[/li] *newline*
naar
[/li]

(vooraleer uw nl2br toe te passen)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan