<?php
$values = array('username'=>'AAAAAA', 'lastname'=>'Smith'); $string = 'Hello {$username}, how are you?';
$new_string = preg_replace_callback('/\{\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\}/', function($m) use ($values) { return 'Hello <?php echo ' . (!empty($values[$m[1]]) ?
$values[$m[1]] : $m[0]) . '; ?>'; }, $string);
PD9waHAKCiR2YWx1ZXMgPSBhcnJheSgndXNlcm5hbWUnPT4nQUFBQUFBJywgJ2xhc3RuYW1lJz0+J1NtaXRoJyk7CiRzdHJpbmcgPSAnSGVsbG8geyR1c2VybmFtZX0sIGhvdyBhcmUgeW91Pyc7CiRuZXdfc3RyaW5nID0gcHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcvXHtcJChbYS16QS1aX1x4N2YtXHhmZl1bYS16QS1aMC05X1x4N2YtXHhmZl0qKVx9LycsIGZ1bmN0aW9uKCRtKSB1c2UgKCR2YWx1ZXMpIHsKCQlyZXR1cm4gJ0hlbGxvIDw/cGhwIGVjaG8gJyAuICghZW1wdHkoJHZhbHVlc1skbVsxXV0pID8gJHZhbHVlc1skbVsxXV0gOiAkbVswXSkgLiAnOyA/Pic7Cgl9LCAkc3RyaW5nKTsKCnZhcl9kdW1wKCRuZXdfc3RyaW5nKTs=