phpbar.de logo

Mailinglisten-Archive

[php] Klassen und Methoden bzw. sep. Functionen finden per RegEx

[php] Klassen und Methoden bzw. sep. Functionen finden per RegEx

Johannes Schlueter schlueter at phpbar.de
Die Mar 22 17:03:38 CET 2005


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