note 83945 added to function.str-replace
| From: | max at bitsonnet dot com | Date: | Thu, 19 Jun 2008 21:00:36 +0000 |
| Subject: | note 83945 added to function.str-replace | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-140598@lists.php.net to get a copy of this message | ||
I always miss interpolate functionality in PHP, so I wrote this little helper method. It allows you
to specify your own markup using $prefix and $postfix.
<?php
# Interpolate a string using hash.
# by Maxim Chernyak ( http://mediumexposure.com )
function interpolate($template, $hash, $prefix = '#{', $postfix = '}' ) {
$tokenize = create_function('$token', 'return "'. $prefix
.'".$token."'.$postfix.'";');
$keys = array_keys($hash);
$values = array_values($hash);
$keys = array_map($tokenize, $keys);
return str_replace($keys, $values, $template);
}
?>
For example:
<?php
$result = interpolate('Hello, #{username}. Welcome to #{site}.',
array('username' => 'Hakunin', 'site' => 'php.net'));
?>
----
Server IP: 209.41.74.194
Probable Submitter: 209.10.106.40
----
Manual Page -- http://www.php.net/manual/en/function.str-replace.php
Edit -- https://master.php.net/note/edit/83945
Del: integrated -- https://master.php.net/note/delete/83945/integrated
Del: useless -- https://master.php.net/note/delete/83945/useless
Del: bad code -- https://master.php.net/note/delete/83945/bad+code
Del: spam -- https://master.php.net/note/delete/83945/spam
Del: non-english -- https://master.php.net/note/delete/83945/non-english
Del: in docs -- https://master.php.net/note/delete/83945/in+docs
Del: other reasons-- https://master.php.net/note/delete/83945
Reject -- https://master.php.net/note/reject/83945
Search -- https://master.php.net/manage/user-notes.php