Sipatshi: Regex

Beitrag lesen

moin moin

Das heißt, dass diese Aufrufe nicht gefunden werden sollen, wenn sie als Funktionsparameter oder Ausdrucksbestandteil (z.B. in einer Bedingung vor einem or/and) notiert kein ; hintendran haben - oder die auch?

Doch, diese sollen auch gefunden werden! Erst einmal wollte ich alle Bereiche matchen(da habe ich immer noch keine Lösung :( ) die "nicht" innerhalb einer Funktion aufgerufen werden bzw. ein Teil eines Ausdrucks sind und dann im zweiten Schritt mit der Token-Geschichte alle Bereiche lokalisieren die ein Teil einer Funktion/Bedingung/while/for usw sind!

Hier meine ersten Gehversuche, was nicht wirklich funktioniert! Was mache ich falsch?

  
$source = '<?  
  
    # use oopRuntime as file;  
  
    echo o(["test1", ["test2", "test3"]])[1]->shuffle()[0]->ucfirst();  
  
    class Foo {  
  
        public $tmp = null;  
  
        public function __construct($tmp) {  
            $this->tmp = $tmp;  
        }  
        public function init(){  
  
            $res = o($this->tmp)->explode('|')[1]->strtolower()->pregMatch("/Was/")[0]->strtolower();  
  
  
            if(o("Hallo")->pregMatch("Ha")){  
                echo "hallo";  
            }  
  
        }  
  
    }  
  
    $o = new Foo("Hallo|Was|Geht|Ab");  
    echo $o->init();  
?>';  
  
$tokens = \token_get_all($source);  
  
foreach ($tokens as $token) {  
  
    var_dump($token);  
  
    if (is_string($token)) {  
        var_dump($token);  
    } else {  
        // Token Array  
        list($id, $text) = $token;  
  
        switch ($id) {  
            case T_IF:  
                var_dump($token); #passiert nichts !  
                break;  
            default:  
                #var_dump($token);  
                break;  
        }  
    }  
}

Zum Löschen nimm rm oder del ... Ich denke, du kommst nervenschonender ans Ziel, wenn du die Token-Geschichte nimmst. Dabei wertest du nicht nach Mustern aus, die sonstwo vorkommen können und damit unerünscht sind, sondern findest anhand der Bedeutung die dich interessierenden Teile.

Jep, das gefällt mir :)

Gruß

Sipatshi