I need a way of replacing some variables within a passed string.
Example:
I pass through “#fname# jumped over the tall wall to get his phone with the number #phone#”.
I need the string to be replaced with “John jumped over the tall wall to get his phone with the number 0123456789”.
I have used str_replace in the past but they is alot of tags (#example#) to be replaced per execution – 1000+, and i am wary of speed performance..
Maybe a regex with preg_replace? The language is PHP.
Thank you.
Kyle
Advertisement
Answer
Well, you can use arrays with str_replace
:
So, let’s say you had these tags to replace:
$search = array(
'#firstname#',
'#lastname#',
'#phone#',
'#foobar',
);
And you wanted to use this data:
$replace = array(
'John',
'Doe',
'5555553535',
'baz',
);
And you had a list of strings you wanted to do it in:
$strings = array(
'My First Name is: #firstname#',
'My Last Name is: #lastname#',
'My Contact Info Is: #phone#, #foobar#',
);
You could call:
$populatedStrings = str_replace($search, $replace, $strings);
Which would result in:
array(
'My First Name is: John',
'My Last Name is: Doe',
'My Contact Info Is: 5555555353, baz',
);
So you can do a lot in one shot, and it should be much faster than doing anything with a regex for this kind of operation (REGEX could be better if you wanted multiple replaces for each tag, eg: array('#firstname#', '#fname#', '#givenname#', '#gname#')
all for first name…)