Mailinglisten-Archive |
Hallo Liste! Ich bin auf der Suche nach einer Lösung für folgendes Problem: Ich bekomm über das PHP CLI einen Befehl, z.B. "list /home"... Dann hab ich spezielle Userfunktionen in PHP definiert, die z.B. usr_list() heißen. So und jetzt hab ich noch den Zusammenhang in einem Array definiert: $def = array( // USR Func, Pattern, Argument array("usr_dir","°dir (.+)°",1), array("usr_cd","°cd (.+)°",1) ); Nun brauch ich eine Funktion, die praktisch den Befehl von dem CLI mit den Regexps aus $def vergleicht und dann dementsprechend Funktionsnamen ("usr_*") plus eventuell ein Übergebenes Argument zurückgibt. Ich hab mir das schon mit einer foreach-Schleife gebastelt: $def = array( array("dir","°dir (.+)°",1), array("cd","°cd (.+)°",1) ); foreach ($def as $d) { if (preg_match($d[1],$arg,$matches)) { $return = array($d[0],$matches[$d[2]]); break; } } Funktioniert auch. Nur ist das wohl nicht sehr glücklich, wenn ich viele Befehle in $def definiert hab. Gibt’s denn sozusagen ein Gegenteil von preg_grep(), bei dem ich einen Pattern-Array angeben kann und ich den Array-Index für den Pattern zurückbekomm, der matcht? Hoffe ich hab das einigermaßen einleuchtend beschrieben... Bin dankbar für jeden Tipp, wie das einfach realisiert werden könnte! Gruß, Andi
php::bar PHP Wiki - Listenarchive