All pastes #46960 Raw Edit

Mine

public text v1 · immutable
#46960 ·published 2006-03-25 20:30 UTC
rendered paste body
<?php	function replace_vars($content,$vv) {
		global $vars;
		$vars=$vv;
		$string=$content;
		$regex='/(^|[^!])(\{)(\$)(\w+)(\})/';
//		$string=preg_replace_callback($regex,array("site",'transfer_vars'),$string);
		$string=preg_replace_callback($regex,'transfer_vars',$string);
		$regex2='/([!])(\{)(\$)(\w+)(\})/';
		$string=preg_replace($regex2,'\\2\\3\\4\\5',$string);
		unset($vv);
		unset($vars);
		return $string;
	}
	function transfer_vars($matches) {
		global $vars;
		if ( isset($vars[$matches['4']]) ) {
			if ( is_array($vars[$matches['4']]) ) {
				return $matches['1']."<pre>".print_r($vars[$matches['4']],true)."</pre>";
			}
			else {
				return $matches['1'].$vars[$matches['4']];
			}
		}
		else {
			return $matches['1']."<span style='color:red;'>[Undefined Variable <b>{$matches['4']}</b>]</span>";
		}
	}
//usage
$list=array("name"=>"Newbie");
$string='Hello. My Name is <b>{$name}</b>';
echo "Original: {$string}<br />\n";
$string=replace_vars($string,$list);
echo "New: {$string}<br />\n";
?>