«Устарело: parse_str(): вызов parse_str() без аргумента результата устарел в»

Я хочу запустить следующую команду с помощью 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..

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
40
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не можете заменить весь массив в строку. Используйте implode() для преобразования массива в строку с разделителем между значениями.

$argumentsArray = [
    'postID' => 123456
    'foo' => 'bar'
];

$arguments = implode(' ', $argumentsArray);

exec("php /var/.../../example.php -- {$arguments}");

Я думаю, что нет возможности просто отправить argumentsArray. Например; example.php -- $argumentsArray $argumentsArraySecond ?

Emre7 03.05.2022 00:44

Вы можете использовать implode(' ', $argumentsArray), чтобы сделать строку из значений массива.

Barmar 03.05.2022 00:50

Но я думал, ты хочешь просто получить postID, как ты сделал с $postID = $arguments['postID'];

Barmar 03.05.2022 00:51

Вопрос очень неясен о том, что вы действительно хотите сделать. В вашем примере указано exampleData1, но $argumentsArray содержит bar, поэтому было не очевидно, что другие элементы массива сопоставляются с аргументами команды.

Barmar 03.05.2022 00:53

Другие вопросы по теме