Mailinglisten-Archive | 
Hi,
On Tuesday 22 March 2005 16:40, Steffen Kother wrote:
> Ich würde gern an einer RegEx-Lösung weiterbasteln. Tokenizer ist mir
> zu komplex bzw. für das bissl was ich will zu viel.
Wenn Reflection-API nicht passt ist der Tokenizer ganz genau das richtige. Bei 
irgendwelchen Regex-Lösungen hast du zu viele Fallen drin, der Tokenizer 
verwendet direkt den Parser aus der Engine und somit die selben Regeln um die 
Datei aufzuteilen. 
$tokens = token_get_all($code);
und dann über $tokens iterieren und immer bei einem T_CLASS oder T_FUNCTION 
Token den wert des nächsten T_STRING Tokens auslesen....
Grob (ungetestet) runtergeschmiert:
foreach ($tokens AS $token) {
    if ($in_function || $in_class && $token[0] == T_STRING) {
        echo "Funktion bzw. Klasse $token[1]";
        $in_function = false;
        $in_class = false
        continue;
    }
    if ($token[0] == T_CLASS) {
        $in_class = true;
    } elseif ($token[0] == T_FUNCTION) {
        $in_function = true;
    }
}
johannes
    php::bar PHP Wiki - Listenarchive