Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Czas generowania skryptu.
Forum PHP.pl > Forum > Przedszkole
Mike122
Witam wiem, że czas generowania całego skryptu mogę określić dzięki funkcji set_time_limit" title="Zobacz w manualu PHP" target="_manual jednak czy da się w PHP zrobić tak, aby określić czas generowania jakiegoś konkretnego kawałka skryptu, jeśli przekroczy ten czas zostanie wyświetlony komunikat, że przekroczono dostępny limit czasu a dalsza część kodu (już niezwiązana z tym kawałkiem) zostanie wygenerowana normalnie.
Proszę o jakieś porady przykłady czy tutorial...
Pozdrawiam.
flv
Zczytuj funkcją microtime() czas w którym wykonywany jest początek i koniec tej części kodu, odejmuj drugą wartość od pierwszej i sprawdzaj w if'ie czy ta wartość jest większa od limitu czasu.
Mike122
Więc:
  1. <?php
  2. //Przed skryptem
  3. $script_start = microtime(true);
  4.  
  5. //Treść skryptu
  6.  
  7. //Koniec skryptu
  8. $script_end = microtime(true);
  9.  
  10. //i zaokrąglenie do sekund
  11. round($script_end - $script_start, 4);
  12. ?>


I co dalej z if? Bo już nie mam pomysłu.
Moli
  1. <?php
  2. $ile = round($script_end - $script_start, 4) ;
  3.  
  4. if ( $ile > $dopuszczalny_czas ) {
  5. echo 'error' ;
  6. }
  7. ?>
Mike122
~Moli ale skrypt się wykona... I dopiero wtedy wyświetli error z wykonanym skryptem...
flv
Nigdzie nie pisałeś że skrypt ma się nie wykonać w takim przypadku, pisałeś tylko że ma wyświetlić błąd.
Czas wykonania skyptu nie jest znany przed jego wykonaniem, więc raczej nic takiego nie istnieje.
Mike122
To w JavaScript czy też Ajax może jakoś się da?
Kicok
To zależy od tego co to za skrypt ma się tyle czasu wykonywać. Jeśli to jakaś pętla, to możesz sprawdzać czas w jej wnętrzu. Jeśli masz tam funkcje fsockopen, cURL, czy inne, którym da się ustawić timeout, to ustawiasz timeout smile.gif
Qp3k
Może buferuj?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.