Мы знаем, что вы можете легко получить массив аргументов из командной строки с предопределенной переменной .
Есть ли какой-либо простой способ получить массив из строки вместо командной строки?
Мне нужно написать несколько тестов для соответствующей библиотеки.
Например, при запуске script.php -a b -c d
, в script.php
,
вы могли бы получить со значением ["script.php", "-a", "b", "-c", "d"]
.
Итак, мой вопрос в том, что внутри php-скрипта
как я могу получить этот массив из строки, скажем "-a b -c d"
здесь, не передавая строку в командную строку, а в переменную?
Мне не нужно разбирать параметры здесь.
Самый простой способ сделать это:
$array = preg_split ("/\s+/", $str);
Однако, это не может покрыть строки с пробелами внутри значения параметра.
Скажи:
-a "some thing"
Что вы имеете в виду «получить массив из строка "? –
@RobbieAverill Например, когда вы запускаете 'script.php -ab -cd', в' script.php', вы можете получить '$ argv' со значением' ["script.php", "-a", "b "," -c "," d "]'. Итак, вот мой вопрос в том, что внутри php-скрипта, как я могу получить этот массив из строки, скажем, '' -a b -c d '' здесь? –
В конце вашего вопроса вы намекаете, что между тем, что называется флагами и аргументами со значениями, существует другое. Если вы ищете универсальное решение, я предлагаю вам использовать стороннюю библиотеку, например https://github.com/nategood/commando, ведь вы можете более или менее передавать строку, а затем получать доступ к своим значениям с помощью хорошего API , – Michael