Я хочу запустить следующую команду с помощью exec, но получаю сообщение об ошибке. Так что же мне использовать вместо этого?
php /var/.../../example.php -- 123456789 exampleData1 exampleData2
Ошибка:
Deprecated: parse_str(): Calling parse_str() without the result argument is deprecated in /var/.../../example.php on line X
Я пробовал это:
$argumentsArray = [
'postID' => 123456
'foo' => 'bar'
];
exec(php /var/.../../example.php -- $argumentsArray);
и;
parse_str(parse_url($argv[0], PHP_URL_QUERY),$arguments);
$postID = $arguments['postID'];
Ошибка: Notice: Undefined index: postID in..






Вы не можете заменить весь массив в строку. Используйте implode() для преобразования массива в строку с разделителем между значениями.
$argumentsArray = [
'postID' => 123456
'foo' => 'bar'
];
$arguments = implode(' ', $argumentsArray);
exec("php /var/.../../example.php -- {$arguments}");
Вы можете использовать implode(' ', $argumentsArray), чтобы сделать строку из значений массива.
Но я думал, ты хочешь просто получить postID, как ты сделал с $postID = $arguments['postID'];
Вопрос очень неясен о том, что вы действительно хотите сделать. В вашем примере указано exampleData1, но $argumentsArray содержит bar, поэтому было не очевидно, что другие элементы массива сопоставляются с аргументами команды.
Я думаю, что нет возможности просто отправить
argumentsArray. Например;example.php -- $argumentsArray $argumentsArraySecond?