Robert R.: Kann man das vereinfachen?

Beitrag lesen

Liebe Wissende,

ich habe mir jetzt eine rekursive Funktion dafür gestrickt.
Vielleicht habt Ihr eine Idee, wie man die noch vereinfachen/verbessern kann?

  
function get_parts ($tpl)  
{  
	$_parts = array();  
  
	$open = 0;  
	$close = 0;  
	$pos = 0;  
	$len = strlen($tpl);  
	$start = 0;  
	  
	  
	while (($len > 0) && ($pos < $len))  
	{  
	    if ($tpl[$pos] == '[')  
		{  
			$open++;  
  
			if ($open == 1)  
			{  
				$start = $pos;  
			}	  
		}  
		  
		if ($tpl[$pos] == ']')  
		{  
		    $close++;  
		}  
				  
                if (($open == $close) && ($open > 0))  
		{  
			$str = substr($tpl, $start +1, $pos - $start -1);	  
			$_parts[$str] = get_parts($str);  
  
                        if (count($_parts[$str]) == 0)  
			{  
				$_parts[$str] = evaluate($str);  
			}  
			  
			$tpl = substr($tpl, $pos +1);  
			$len = strlen($tpl);	  
  
			$open = 0;  
			$close = 0;  
			$pos = 0;  
			$start = 0;  
		}	  
		else  
		{  
			$pos++;  
		}  
	}  
	  
        return $_parts;  
}  
  

Grüße

Robert