Rückgabewerte bei Tokenizer-Funktion

peeed

Grünschnabel
Moin!

Ich habe eine Funktion, mit der ich sämtliche Variablen einer Datei auslese:
Code:
foreach(token_get_all($datei_inhalt_vars) as $c){
    if(is_array($c)){
        if(token_name($c[0]) == "T_VARIABLE" && !in_array(htmlentities($c[1]),$variablen))
	    $variablen[] = htmlentities($c[1]);
    }
}
Funktioniert auch prächtig. Weiss jemand, ob ich mir die Position der Variablen im String auch zurückgeben lassen kann?

Danke
 
Hi,
ja, kann man, du musst nur eine Variable die Textlänge der Tokens mitzählen lassen:

PHP:
<?php
	$pos = 0;
	$i = 0;
	$variablen = array();
	$tokens = token_get_all(file_get_contents(__FILE__));

	foreach ($tokens as $token) {

		if (is_string($token)) {
			$pos += strlen($token);
			continue;
		}

		list($id, $text) = $token;

		if ($id == T_VARIABLE && !in_array(htmlentities($text), $variablen)) {
			$variablen[$i]['name'] = htmlentities($text);
			$variablen[$i]['position'] = $pos;
			$i++;
		}
		$pos += strlen($text);
	}

	print_r($variablen);
?>

Gruß
Marvin
 
Zurück