Voordat iedereen nu meteen met tomaten begint te gooien en mij het forum uit-boeee't... ik heb echt m'n best gedaan. Wat ik probeer te doen is BB-coding uit de database van een phpBB forum om te zetten naar html. De syntax die wordt gebruikt in het forum zelf is de volgende:
Redelijk recht-toe-recht aan dus. Nu wil het geval dat ik deze omzetting eigenlijk in 1 keer wil doen en wel met een regular expression. Daarbij wordt er in de database voor $uid een hexidecimale waarde opgeslagen, maar wat die waarde is interesseert me in dit geval niet.
Hiervoor heb ik allerlei tutorials uit zitten pluizen, dingen geprobeerd, maar op de een of andere manier krijg ik maar geen goede match. Of hij vindt veel te veel matches, of helemaal niets. De string die ik wil matchen is:
beginnend met "[b:"
gevolgd door dat $uid wat me niet uitmaakt
eindigend met "]"
Daarna volgt de tekst die dikgedrukt moet zijn, dus ik dacht aan iets als ".*?" voor in de regex.
daarna komt "[/b]"
Het bovenstaande stukje moet vervangen worden door:
"<b>De tekst die dikgedrukt moet zijn</b>"
Hopelijk kunnen jullie me hierbij helpen, of in ieder geval de goede richting in duwen. Links naar tutorials over regex zijn natuurlijk welkom, maar ik heb er al redelijk wat gehad, ook via google.
PHP:
1
2
| str_replace("[b:$uid]", $ietsanders, $bericht); str_replace("[/b]", $ietsanders, $bericht); |
Redelijk recht-toe-recht aan dus. Nu wil het geval dat ik deze omzetting eigenlijk in 1 keer wil doen en wel met een regular expression. Daarbij wordt er in de database voor $uid een hexidecimale waarde opgeslagen, maar wat die waarde is interesseert me in dit geval niet.
Hiervoor heb ik allerlei tutorials uit zitten pluizen, dingen geprobeerd, maar op de een of andere manier krijg ik maar geen goede match. Of hij vindt veel te veel matches, of helemaal niets. De string die ik wil matchen is:
beginnend met "[b:"
gevolgd door dat $uid wat me niet uitmaakt
eindigend met "]"
Daarna volgt de tekst die dikgedrukt moet zijn, dus ik dacht aan iets als ".*?" voor in de regex.
daarna komt "[/b]"
Het bovenstaande stukje moet vervangen worden door:
"<b>De tekst die dikgedrukt moet zijn</b>"
Hopelijk kunnen jullie me hierbij helpen, of in ieder geval de goede richting in duwen. Links naar tutorials over regex zijn natuurlijk welkom, maar ik heb er al redelijk wat gehad, ook via google.
Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.