Как запустить php функцию через exec с параметрами?
Всем доброго времени суток!
У меня есть проблемка: нужно запустить php функцию в фоне. (cron и прочие OС варианты не катят)
Единственный вариант, который я нашел в просторах интернета - это запуск через exec, но мне нужно запускать не сам файл, а только функцию из php файла.. да еще и с параметрами - как это сделать?
entermix, а зачем вот эта строка?
echo hello($argv[1]);
И не мог бы ты вкратце объяснить по поводу того, как это работает, т.е. что делает echo hello и почему в exec уже hello.php, вместо functions.php - был бы весьма признателен.
По поводу второго варианта:
Алексей, я уже проверял этот вариант, но получается, что тогда висит myfile.php до тех пор, пока в нем выполняется функция funtions.php и выходит, что мне уже нужно в фоне запустить сам myfile.php .
Если подробнее:
Я по кнопке запускаю функцию, скрипт, который работает в while, а по другой кнопке я хочу его остановить, но прикол в том, что пока работает скрипт, кнопка не выполняет должных действий, т.е.
if( isset( $_POST['stop'] ) ){
//установка прерывающего флага;
}
- не работает! что печально.. (я проверял смену флага с работающим скриптом и без него..)
AlelxSSS: >а зачем вот эта строка? echo hello($argv[1]);
Чтобы получить значение переданного параметра
> И не мог бы ты вкратце объяснить по поводу того, как это работает, т.е. что делает echo hello и почему в exec уже hello.php, вместо functions.php - был бы весьма признателен.
echo hello просто выводит текст hello + переданный аргумент
hello.php в exec потому, что вы написали о том, что нужно запустить отдельную функцию.
>Я по кнопке запускаю функцию, скрипт, который работает в while, а по другой кнопке я хочу его остановить, но прикол в том, что пока работает скрипт, кнопка не выполняет должных действий, т.е........
Мне кажется вы не совсем в теме, остановить скрипт таким способом невозможно (вы просто запускаете второй процесс). Можно сделать так:
1. Создать конфигурационный файл с параметром run_allow=true например
2. Запускаем файл run.php в бесконечный цикл в котором постоянно считываем параметр run_allow с нашего конфига и если там false завершаем процесс
3. Если нужно остановить скрипт, меняем вторым скриптом наш конфиг в run_allow=false