Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
olafars
3 / 3 / 0
Регистрация: 08.10.2009
Сообщений: 88
1

Выполнение консольных команд

24.11.2014, 15:44. Просмотров 2561. Ответов 6
Метки нет (Все метки)

Добрый день дорогие форумчане! Такая проблема: с версии php 5.4 удалён safe_mod , а значит функции exec() и system() не работают, а значит выполнение консольных команд через эти функции не работает. Поправьте меня если я не прав, а если я прав, предложите альтернативные решения выполнения консольных команд средствами php.
Буду очень признателен вам!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2014, 15:44
Ответы с готовыми решениями:

Выполнение команд на Linux сервере
У меня php+apache стоит на Linux сервере. Как мне выполнить на его стороне...

Выполнение консольных комманд
Подскажите есть ли возможность средствами php вызывать консольные команды , при...

Рейтинг команд в .txt
Доброго времени суток! Необходимо сделать универсальный рейтинг команд....

Значение команд в коде
Добрый день меня интересует значение команд в коде. Но при вводе в поисковике...

Скорость выполнения команд
Здравствуйте. Задался таким вопросом, как можно скорость вычислить выполнения...

6
pav1uxa
1857 / 1711 / 802
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 1
24.11.2014, 16:56 2
Цитата Сообщение от olafars Посмотреть сообщение
функции exec() и system() не работают
Цитата Сообщение от olafars Посмотреть сообщение
Поправьте меня если я не прав
Вы не правы.
0
olafars
3 / 3 / 0
Регистрация: 08.10.2009
Сообщений: 88
24.11.2014, 16:58  [ТС] 3
Хотелось бы услышать обоснование.
И если не прав, то есть ли какой-нибудь таймаут в exec() , т.к. приходиться запускать в цикле, команды выполняются с интервалом 6-15 секунд, а вывода нет, т.е. заставить синхронно работать)
0
pav1uxa
1857 / 1711 / 802
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 1
24.11.2014, 17:04 4
Цитата Сообщение от olafars Посмотреть сообщение
Хотелось бы услышать обоснование.
Обоснование чего? Вы сами придумали какую то информацию и я должен обосновать почему она неверная?

У меня php 5.5.16, команды exec() и system() отлично работают, без всяких задержек.
0
olafars
3 / 3 / 0
Регистрация: 08.10.2009
Сообщений: 88
24.11.2014, 17:17  [ТС] 5
Требуется safe_mode, а он в свою очередь в 5.3 устаревший, а в 5.4 и вовсе удалён.
5.4.0 Удален из PHP, генерирует фатальную ошибку E_CORE_ERROR при попытке включения.
5.3.0 Помечен устаревшим, при включении генерируется ошибка уровня E_DEPRECATED.
Видимо я что-то не допонял, перепроверил, в консоли получается скрипт запустить, на браузере пока не проверял.
Подскажете что-нибудь касательно exec() в цикле?
PHP
1
2
3
4
5
6
7
8
9
10
foreach ($list as $key => $value) {
            if (strstr($value, $manager)) {
                echo "<br>";
                echo $value;
                        //ffmpeg -i c:/OpenServer/domains/call1.ru/files/11/20/8201043635710-100-2014-11-20-100117.wav -ab 64 c:/OpenServer/domains/call1.ru/files/11/20/8201043635710-100-2014-11-20-100117.wav.mp3 &
                $str="ffmpeg -i ".$value." -ab 64 ".$value.".mp3";
                exec($str,$output, $return_value);
 
            }
        }
Бежит по каталогу, собирает wav-файлы, конвертирует их в mp3
На деле же не работает, в чём может быть проблема?

Добавлено через 2 минуты
в свою очередь возвращает $output как пустой массив, а return_value - 1
0
pav1uxa
1857 / 1711 / 802
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 1
24.11.2014, 18:09 6
Лучший ответ Сообщение было отмечено olafars как решение

Решение

Цитата Сообщение от olafars Посмотреть сообщение
Требуется safe_mode, а он в свою очередь в 5.3 устаревший, а в 5.4 и вовсе удалён.
Кто Вам сказал что для использования функций exec() и system() необходим какой то там safe_mode?

Добавлено через 2 минуты
Цитата Сообщение от olafars Посмотреть сообщение
в свою очередь возвращает $output как пустой массив, а return_value - 1
Вариантов много может быть много. Может у Вас нет приложения ffmpeg на компьютере. Может командная строка его не видит. Может ему передаются неверные параметры. Я не знаю включен ли у Вас вывод ошибок.
0
olafars
3 / 3 / 0
Регистрация: 08.10.2009
Сообщений: 88
25.11.2014, 14:55  [ТС] 7
Кодек установлен, параметры указаны все верно, если брать одну итерацию цикла, как отдельный вызов, то конвертация работает. Не работает вызов exec() в цикле, первоначальная отладка показала, что между итерациями цикла задержка в полторы секунды, а выходных данных нет.

Добавлено через 18 часов 49 минут
Задача решена, exec не работал, не находил указанный путь, но ошибку не выбрасывал. Скрипт запускался через браузер и через консоль.
0
25.11.2014, 14:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2014, 14:55

Последовательный вывод сообщений и команд.
Здравствуйте народ. Возникла простейшая задача, ума не приложу как решить....

Использование команд Linux в php
Использование команд Linux в php. Что посоветуете? Какие функции лучше...

Несколько команд в терминал через PHP
Привет, форумчане! Интересует способ реализации вот такой ситуации. Есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru