Beat: Code-Befehl mit regular expressions ausführen

Beitrag lesen

Könnt ihr mir helfen, wie ich das machen kann?

In Perl gibt es die Syntax s///e
es ist der Switch /e der einen Eval-Block um die rechte Seite der Expression setzt.
Ditto gibt es in PHP
preg_replace("/(x)/e","some_func($1)")
Das ist bei PHP allerdings verwirrend, denn /e gehört ja zum zu ersetzenden evaluierenden Pattern.

Ich muss zugeben, dass das Script jetzt noch nicht wirklich sicherheitsoptimiert ist, aber ich will erst mal wissen, wie es machbar ist.

Im Zusammenhang mit eval gibt es tatsächlich zu bedenken:

Perl
"suchtext"=~ s/($userword)/somefunc($1)/e;

Hier kann noch nichts passieren, aber was, wenn ich einen doppelten eval Block verwende?

"suchtext"=~ s/($userinput)/somefunc($1)/ee;

Hier darf ich schon mal meinen Server neu aufsetzen. Denn der vom user gelieferte ausdruck wird evaluiert.

Das Verhalten in PHP soltest du unbedingt recherchieren.

mfg Beat

--
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o
Der Valigator leibt diese Fische