<?
function eval_vars_in_string($_string,$_vars)
{
  
extract($_vars);

  
$_boundary uniqid('__');

  
$_code '$_return = <<<'.$_boundary.'
'
.$_string.'
'
.$_boundary.';
'
;

  eval(
$_code);

  return 
$_return;
}

$_string 'こんにちは、{$foo}さん。ようこそ{$bar}のホメパゲへ。';

$_out eval_vars_in_string($_string,$_POST);

?>
<form action="" method="post">
<input type="text" name="foo" value="<?=$_POST['foo'];?>" />
<input type="text" name="bar" value="<?=$_POST['bar'];?>" />
<input type="submit" />
</form>

<pre>
<?var_dump($_string);?>

<?var_dump($_out);?>
</pre>
<a href="./index.phps">phps</a>