Archief - PHP: herhalende smilies

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.

maT'

Legacy Member
Aangezien leren voor een wiskunde-exaam ni echt "vlot" ging, begon ek maar es wat te debuggen :p

zo heb ik bv een probleem met deze code:
PHP:
$Smilies = Array(":roll:" => "sarc.gif", 
                 ":confused:" => "confused.gif", ..., 
                 ":r" => "pukey.gif", ... ); // and so on, meerdere smilies zitten hierin

foreach ($Smilies As $Code => $Gif) {
    $Bericht = str_replace ($Code, "<img src='common/smilies/". $Gif ."' alt='". $Code ."' />", $Bericht);
}
dit werkt leuk, tot iemand de smilie :roll: ingeeft.
dan wordt nl in het bericht, de smilie :roll:vervangen, maar wordt later ook de smilie :r, in de reeds vervangen :roll: vervangen, wat volgende output geeft:
Code:
<img src='common/smilies/sarc.gif' alt='<img src='common/smilies/pukey.gif' alt=':r' />oll:' />
is dit te voorkomen via reg ex's (indien ja, zet me dan ff op het goede spoor aub :p ) of moet ik het op een compleet andere manier zoeken?

icerulez

Legacy Member
niet met str_replace werken maar met preg_replace

of de volgorde van u array vervangen en zorgen dat :roll: voor :r vervangen wordt :p

killgore

Legacy Member
1) wtf moet em preg_replace ipv str_replace gebruiken?
2) str_replace kan met arrays omgaan, een foreach is daar dus compleet onnodig
3) werk in alt met ascii values voor dingen als :, is makkelijkste oplossing imho.

maT'

Legacy Member
Aah, 't was dus nog simpeler dan ik dacht, het replacen van ":" door hun ascii waarde deed het hem hier dus :)

thx !
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