Re: variable replacement in string [message #178009 is a reply to message #178002] |
Thu, 10 May 2012 13:14 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 5/10/2012 8:44 AM, M. Strobel wrote:
> Hi,
>
> I am still searching a function in PHP to execute variable replacement in strings.
> Other languages do have this, but for PHP I can only find sprintf() and string replace.
>
> I have
>
> $t = ' - solved - ';
> $msg = 'The problem is $t';
>
> I want now:
>
> echo fxx($msg);
>
> print out "The problem is - solved - ".
>
> Please don't tell me about $msg = "The problem is $t"; just think of $msg like a
> template read from a file.
>
> /Str.
There's also preg_replace(), but that's a bit of overkill for something
so simple.
str_replace() works fine, especially since both the search and replace
parameters can be arrays. But when using message templates, I don't use
variable names - it ties the template tightly to the code.
Rather, I use templates like:
$t = ' - solved - ';
$template = 'The problem is %PROB_STAT%';
echo str_replace('%PROB_STAT%', $t, $template);
Or, if you had the possibility of more than one string to substitute:
$search = array('$PROB_STAT%');
$replace = array($t);
echo str_replace('%PROB_STAT%', $t, $template);
Your method requires the template know that $t is the value in the
program, and requires the program to ensure $t is defined properly in
this scope. Neither is a good idea.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|