Разбор аргументов команды в PHP
Есть ли собственный "способ PHP" для анализа аргументов команды изstring
? Например, учитывая следующееstring
:
foo "bar \"baz\"" '\'quux\''
Я хотел бы создать следующееarray
:
array(3) {
[0] =>
string(3) "foo"
[1] =>
string(7) "bar "baz""
[2] =>
string(6) "'quux'"
}
Я уже пытался использоватьtoken_get_all()
, но синтаксис интерполяции переменной PHP (например,"foo ${bar} baz"
) довольно много дождей на моем параде.
Я прекрасно знаю, что могу написать свой собственный парсер. Синтаксис командных аргументов очень упрощен, но если есть существующий нативный способ сделать это, я бы предпочел это, а не свой собственный.
РЕДАКТИРОВАТЬ: Обратите внимание, что я хочу разобрать аргументы отstring
НЕ из оболочки / командной строки.
РЕДАКТИРОВАНИЕ № 2: Ниже приведен более полный пример ожидаемого ввода -> вывода для аргументов:
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