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