PriN_ce Posted December 30, 2009 Report Share Posted December 30, 2009 Привет всем :) Вопрос такой, предположим у меня есть цикл for, в теле которого выполняются какие-то операции, как мне сделать такую вещь, что если например, на 4 шаге тело выполняется больше 5 секунд, то переходим к следующей итерации, т.е: for ($i=0; $i<100; $i++) { // ....bla bla bla ..... if (время выполнения скрипта > 10c) continue;} set_time_limit (n секунд); останавливает сам сценарий, а мне не нужно сразу выходить из него; :) Подскажите как решить задачу) Quote Link to comment Share on other sites More sharing options...
XAKEPok Posted January 2, 2010 Report Share Posted January 2, 2010 Пишу что называется на горячую руку поэтому за работоспособность не ручаюсь. for ($i=0; $i<100; $i++) {//Считываем текущее время $mtime = microtime(); //Разделяем секунды и миллисекунды $mtime = explode(" ",$mtime); //Составляем одно число из секунд и миллисекунд $mtime = $mtime[1] + $mtime[0]; //Записываем стартовое время в переменную $tstart = $mtime;$totaltime = 0;while ($totaltime < 5) { // ....bla bla bla .....//Делаем все то же самое, чтобы получить текущее время $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; //Записываем время окончания в другую переменную $tend = $mtime; //Вычисляем разницу $totaltime = ($tend - $tstart);}} В переменной $totaltime хранится время выполнения кода. Проверить сейчас не имею возможности, поэтому за работоспособность не ручаюсь. Часть кода взята отсюда Quote Link to comment Share on other sites More sharing options...
XAKEPok Posted January 3, 2010 Report Share Posted January 3, 2010 while ($totaltime < 5) Сори, тока в ванную когда пошёл сообразил)) Нужен не цикл while а условие if, иначе зациклится цикл на бесконечности Quote Link to comment Share on other sites More sharing options...
PriN_ce Posted January 3, 2010 Author Report Share Posted January 3, 2010 Спасибо=) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.