Syntaxanalyse von Befehlsargumenten in PHP

Gibt es eine native "PHP-Methode" zum Parsen von Befehlsargumenten von astring? Zum Beispiel das Folgende gegebenstring:

foo "bar \"baz\"" '\'quux\''

Ich möchte folgendes erstellenarray:

array(3) {
  [0] =>
  string(3) "foo"
  [1] =>
  string(7) "bar "baz""
  [2] =>
  string(6) "'quux'"
}

Ich habe bereits versucht, die Hebelwirkung zu nutzentoken_get_all(), aber die variable Interpolationssyntax von PHP (z."foo ${bar} baz") hat auf meiner Parade ziemlich viel geregnet.

Ich weiß genau, dass ich meinen eigenen Parser schreiben kann. Die Syntax von Befehlsargumenten ist sehr simpel, aber wenn es eine native Methode gibt, würde ich diese der eigenen vorziehen.

EDIT: Bitte beachten Sie, dass ich die Argumente von a analysieren möchtestring, NICHT von der Shell / Kommandozeile.

EDIT # 2: Nachfolgend finden Sie ein umfassenderes Beispiel für die erwartete Eingabe -> Ausgabe für Argumente:

foo -> foo
"foo" -> foo
'foo' -> foo
"foo'foo" -> foo'foo
'foo"foo' -> foo"foo
"foo\"foo" -> foo"foo
'foo\'foo' -> foo'foo
"foo\foo" -> foo\foo
"foo\\foo" -> foo\foo
"foo foo" -> foo foo
'foo foo' -> foo foo

Antworten auf die Frage(11)

Ihre Antwort auf die Frage