Archief - php: regular expressions

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.

Incinnerator

Legacy Member
yu

ik zou graag:

[OL="A"]
[OL="a"]
[OL="i"]

vervangen door het overeenkomstige <ol type="A"> enz

ik heb deze constructie:

PHP:
$b = eregi_replace("\[OL=\"[A]\".\]","<ol type=\"A\">",$b);

kan iemand helpen , regular expressions zijn niet mijn ding ondanks de artikels te lezen.
Merci

0n3Liner

Legacy Member
PHP:
$b = preg_replace("#\[ol=\"[(a-zA-Z)]\"\]#i","<ol type=\"$1\">",$b);

Incinnerator

Legacy Member
Bedankt voor de reply
maar het doet het niet

dit staat nog steeds in het bericht : [OL="A"]

maar ga jouw oplossing eens ontleden door op phpfreakz.nl het artikel nog maar eens te bekijken.

hopelijk vind ik het en dan zet ik het hierop, de rest mag natuurlijk nog steeds suggesties geven :)

Greetz

JEy

Legacy Member
* de haakjes staan fout [(a-zA-Z)] => ([a-zA-Z])
* de regex is case-insensitive ("i" achteraan) => [a-zA-Z] = [a-z]
PHP:
<?
$b = '[OL="A"] [OL="a"] [OL="i"]';
$b = preg_replace("#\[ol=\"([a-zA-Z])\"\]#i","<ol type=\"$1\">",$b);
echo $b;
?>
Resultaat: <ol type="A"> <ol type="a"> <ol type="i">

Incinnerator

Legacy Member
het werkt nadat ik htmlspecialchars heb weggedaan maar had gehoord dat da moest wegens veiligheid zodat mensen geen javascript zouden kunnen ingeven waarmee ze dingen zouden kunnen veranderen

dus het volgende vraagje:

moet ge bij het invoegen van een nieuwsbericht htmlspecialchars() doen en dan in de databank stoppen
en als ge het eruithaalt htmlentities() en dan uw bbcode erop laten werken en dan afdrukken?

Greetz
Incinnerator

Lashknife

Legacy Member
addslashes -> in database

ophalen uit database -> stripslashes -> htmlspecialchars -> bbcode -> output op scherm

htmlspecialchars haalt alles eruit waarmee je iets zou kunnen realiseren

correct me als ik iets vergeet :D tzou nogal een lek geven dan :)

*edit*
oops, foute volgorde getipt :) idd eerst html strippen en dan de toegelaten bb code omzetten naar html

Incinnerator

Legacy Member
maar de html die ik dan wil hebben: vb. <b>tekst<b> wordt door die htmlspecialchars niet meer als html gezien maar als gewone tekst &lt; tekst &gt;

hoe doen ze dat op dit forum dan?

killgore

Legacy Member
EERST htmlspecialchars doen (of de overeenkomstige str_replace)
daarna bas je ubb-tags naar < en > omzetten

;)
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