Реклама на сайте Advertise with us

Вопрос по выполнению своей функции в PHP

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 24.05.09
Сообщения: 1788
Рейтинг: 508

Ссылка на сообщениеДобавлено: 04/06/12 в 17:48       Ответить с цитатойцитата 

Всем привет!
Подскажите пожалуйста, кто знает, как можно сделать так, чтобы функция, которая требует время на свое выполнение (склейка песен, ffmpeg), нормально обрабатывалась в цикле, который дает ей поочередно много исходных данных?

Т.е., есть такое:

function super($text) {
_тут_склейка_песен_
(занимает 2-3 минуты на обработку)
return "OK";
}

for ($i=0;$i<count($array);$i++) {
super(array[$i]);
}

--------------
Делаю так, как выше - т.е. функция склейки, а вызываю ее для каждой строки (имена файлов для склейки) в цикле.
Но проблема в том, что она поработает первый цикл и затем тупит, завершается.

Подскажите пожалуйста, как сделать так, чтобы цикл ждал, пока функция выполнится на 100%, затем только делал следующую итерацию?

Не знаю, как искать в гугле такое, мучаюсь с завершением цикла, не выполнившегося так, как нужно.

Заранее огромное спасибо! smail54.gif

---

0
 



С нами с 24.12.10
Сообщения: 478
Рейтинг: 366

Ссылка на сообщениеДобавлено: 04/06/12 в 18:54       Ответить с цитатойцитата 

ffmpeg запускаешь через shell_exec? если в конце команды есть что-то типа "> /dev/null 2>&1 &" то ждать завершения не будет

5
 



С нами с 03.02.11
Сообщения: 842
Рейтинг: 301

Ссылка на сообщениеДобавлено: 04/06/12 в 19:23       Ответить с цитатойцитата 

читаю твои мысли... теперь код... нету в начале пых-файла set_time_limit(0); ?
уж очень мало информации, а у меня трава закончилась. в астрал без нее ну никак... smail101.gif

и забудь за
Код:
for ($i=0;$i<count($array);$i++) {
super(array[$i]);
}
делай
Код:
foreach($array as $val)
  super($val);

6
 



С нами с 24.05.09
Сообщения: 1788
Рейтинг: 508

Ссылка на сообщениеДобавлено: 04/06/12 в 20:06       Ответить с цитатойцитата 

AWD: огромное, огромное спасибо! Получилось! smail04.gif smail76.gif
Сорри, забыл написать, что тайм-лимит и лимит памяти задал:
Код:
set_time_limit (90000);
ini_set('memory_limit', '512M');
ini_set('max_input_time', '9000');


Создаются все, в порядке очереди. Я так рад, что не придется кнопку на каждый трек жать, ура! icon_cool.gif smail54.gif

shar: да, через exec вызываю, но dev null нет, т.к. винда.

smail04.gif

---

1
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »