Ik ben druk bezig met mijn projectje en wilde nu getypte smilies vervangen door plaatjes. Dus ik heb de str_replace erbij gepakt. Alleen zodra ik de search of replace string vervang door een variable gaat het helemaal mis.
Als ik doe:
Maar als ik nou variablen ga gebruiken:
Als ik alleen "imgcode" vervang door en variable krijg ik ook niets terug, ook geen spatie. Bij alleen ":S" vervangen door een variable krijg ik ":S" weer terug, dus lijkt str_replace helemaal niets te doen.
Die variablen moeten later arrays worden, maar met arrays had ik dezelfde problemen. Nu zag ik op php.net staan dat er een bug is PHP in versies lager dan 4.3.3. (Ik gebruik nog 4.2.2 en kan pas over een poos upgraden naar een hogere versie
)
Weet iemand waar ik hier de fout in ga? Of ligt het hem toch aan de bug in PHP? Alvast bedankt
Als ik doe:
PHP:
Krijg ik netjes 'imgcode' terug. Dat is prima!1
2
| <? $reply = ":S"; $reply = str_replace(":S", "imgcode", $reply); ?> |
Maar als ik nou variablen ga gebruiken:
PHP:
Krijg ik helemaal niets terug, zelfs geen spatie oid.1
2
| <? $reply = ":S"; $tag = ":S"; $img = "imgcode"; $reply = str_replace($tag, $img, $reply); ?> |
Als ik alleen "imgcode" vervang door en variable krijg ik ook niets terug, ook geen spatie. Bij alleen ":S" vervangen door een variable krijg ik ":S" weer terug, dus lijkt str_replace helemaal niets te doen.
Die variablen moeten later arrays worden, maar met arrays had ik dezelfde problemen. Nu zag ik op php.net staan dat er een bug is PHP in versies lager dan 4.3.3. (Ik gebruik nog 4.2.2 en kan pas over een poos upgraden naar een hogere versie
Als ik het goed begrijp gaat PHP de fout in als ik variablen gebruik die leeg zijn, of iig bij een array met een leeg veld. Maar dat lijkt mij niet van toepassing op mijn bovenstaande constructie. Want er worden (nog) geen arrays gebruikt en de variablen zijn zeker niet leeg.In PHP versions prior to 4.3.3 a bug existed when using arrays as both search and replace parameters which caused empty search indexes to be skipped without advancing the internal pointer on the replace array. This has been corrected in PHP 4.3.3, any scripts which relied on this bug should remove empty search values prior to calling this function in order to mimick the original behavior.
Weet iemand waar ik hier de fout in ga? Of ligt het hem toch aan de bug in PHP? Alvast bedankt