StormTheGates Posted July 21, 2008 Share Posted July 21, 2008 Aright here is my situation. I have an array of language strings loaded at the top of the page from a language file. Then later the string is called. Some of the strings have variables in them. For example here is a sample: <?php 24 => "You have withdrawn $$with from that ATM account. There is $$amount left.", ?> And then later in the page it goes like this: <?php $amount -= $with; $money=$money + ($with*.; echo "$lang[24]"; ?> However I encounter a problem here, the variables are blank. Any idea why or a way I can fix it? Quote Link to comment Share on other sites More sharing options...
DarkWater Posted July 21, 2008 Share Posted July 21, 2008 You're using 2 $ signs. Don't. You need to escape them if you want them to be displayed literally. Quote Link to comment Share on other sites More sharing options...
StormTheGates Posted July 21, 2008 Author Share Posted July 21, 2008 Thats not it, because this does not work either: <?php Your account number is <b>$act</b> and your pin number is <b>$pin</b>. <b> Write this number down there is no way to recover it</b> ?> Quote Link to comment Share on other sites More sharing options...
trq Posted July 21, 2008 Share Posted July 21, 2008 Did you read the last reply at all? Quote Link to comment Share on other sites More sharing options...
StormTheGates Posted July 21, 2008 Author Share Posted July 21, 2008 Yes he said that because there were two dollar signs they must be escaped properly to display. However my previous reply to this one does not work either and it only uses one dollar sign. Quote Link to comment Share on other sites More sharing options...
trq Posted July 21, 2008 Share Posted July 21, 2008 Yes he said that because there were two dollar signs they must be escaped properly to display. However my previous reply to this one does not work either and it only uses one dollar sign. itds not a string, string are within quotes. Besides that, variables within strings are interpolated when the string is assigned to a variable, not later. What your doing would require eval which I wouldn't recommend. How about.... $s = 'Hello <foo>, this is <bar>'; $a = array('bob','jane'); echo str_replace(array('<foo>','<bar>'),$a,$s); ? Quote Link to comment Share on other sites More sharing options...
StormTheGates Posted July 21, 2008 Author Share Posted July 21, 2008 Why wouldnt you recommend eval? These are hard coded language strings, there is 0 user input. Does it pose a security risk? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.