Выполнение внешних команд с помощью exec в php

331
23 марта 2017, 22:36

Как можно проверить отработала ли команда или нет,выполняю архивацию файла в ответе приходит постоянно 0,не понятно что за ответ такой и как его проверять успешно ли выполнилась архивация или нет. $output вообще всегда содержит пустой массив. Или 0 означает что нет ошибок?

exec('tar -czvf archive.tar.gz '.$archivePath, $output, $response);
echo $response;
Answer 1

Когда все успешно завершено приходит ноль, поэтому делаем проверку ниже:

  <?php
    exec('tar -czvf archive.tar.gz '.$archivePath, $output, $response);
    // Если не ноль, то есть ошибка
    if (!$response) {
        echo "Created Successfully";
    } else {
        echo "not created";
    }
  ?>
Answer 2

Да, нулевой (0) статус завершения внешней программы это завершение без ошибок. Но нужно понимать что цифра обозначает не количество ошибок, а её тип.

В зависимости от системы можно ознакомится с кодами выхода для Windons и Linux.

READ ALSO
Вывод данных из двух MySQL таблиц в HTML таблицу на сайте

Вывод данных из двух MySQL таблиц в HTML таблицу на сайте

Не могу вывести из двух таблиц, как это сделать

366
Курсы валют из Cbr

Курсы валют из Cbr

В этом списке валют из cbr http://wwwcbr

288