I was previously using eval() to parse a string that contained variables ($var), but when I do this, it also parses dollar signs ($20.31). So, I have envisioned putting brackets around variables (since that is rarely done), and only parse variables w/ brackets around them.
I can isolate the variables right now, and strip out the brackets [ ], but I can't parse the variable. Here's the code so far:
<?
$str = 'Text goes [$value]. Insert [$value2] here.';
$value = 'here';
$value2 = 'spiffiness';
echo '$str = '. $str .'<br><br>';
parse_it($str);
function parse_it($str) {
$offset = 0;
$start = strpos($str, '[$', $offset);
$end = strpos($str, ']', $offset);
while($start != -1) {
$front = substr($str, 0, $start);
$middle = substr($str, $start+1, $end-$start-1);
$back = substr($str, $end+1);
eval ("echo \"$middle\";");
echo '$start = '. $start .'<br>';
echo '$end = '. $end .'<br>';
echo '$front = '. $front .'<br>';
echo '$middle = '. $middle .'<br>';
echo '$back = '. $back .'<br>';
$str = $front . $middle . $back;
echo '$str = '. $str .'<br><br>';
$offset = $end + 1;
$start = strpos($str, '[$', $offset);
$end = strpos($str, ']', $offset);
if($start === false) {
$start = -1;
}
}
}
?>
Thanks for any help you can provide.