Nejste přihlášeni
Stránky 1
Potřebuji nastavit kratší dobu, aby se script, když trvá zbytečně dlouho, přerušil.
Bohužel mi to nefunguje.
if( !ini_get('safe_mode') ) {set_time_limit(10);......kód.......;set_time_limit(20);}
max_execution_time = 20 je na serveru nastaveno napevno a nedá se touhle funkcí měnit?
Offline
Není náhodou !ini_get('safe_mode') ověření, jestli je puštěný safe_mode?
Pokud ano, je to jasné, safe mod je vypnutý.
To je opravdu jasné, proto by to mělo snad fungovat,ne?
set_time_limit nefunguje právě při zapnutém SM.Tenhle zápis je ale IF NOT SAFE MODE.
Offline
Ano, error reporting je zapnutý.Chyby to nehlásí, script se normálně spustí,ale časový limit nefunguje.Jedná se o vrácení header status code.
Změnit max_execution_time nelze ani směrem dolů?To je přece z pohledu serveru jedině dobře,ne?
Offline
Jak to teda je?
Safe mod je vypnutej,funkce je povolena,syntax je dobrej...tak proč to zde nefunguje??
Někde jsem narazil na to, že to asi souvisí se špatným umístěním directivy:
php_admin_value max_execution_time "20"
-pokud je umístěna v konfiguračním souboru Apache(VH),tak to nefunguje,pokud v php.ini, tak by to mělo fungovat
Je to tento případ?
Offline
Keďže nieje možné meniť max_execution_time tak je jasné že v kóde set_time_limit() fungovať nebude. Viac v tom kóde nevidím, keďže ste sem viac nenapísali takže nedokážem zistiť kde robíte chybu.
Offline
1/Pokud zde tedy set_time_limit nefunguje, proč si myslíš, že někde dělám chybu já??
Chyby to nevypisuje žádné a kód jede - už jsem výše psal
kód=
print_r(get_headers($web));
-když získávání headeru trvá příliž dlouho, chci to ustřelit(a to nefunguje) a pokračovat v provádění dalšího kódu
2/Pokud jsem to špatně pochopil a s_t_l zde funguje,,můžeš sem napsat nějakej funkční příklad použití set_time_limit?Možná jsem tuto funkci špatně pochopil a použití je proto chybné.
max_execution_time" je maximální hranice.Set_time_limit má nastavit libovolný časový limit do pevně nastavené hranice max_execution_time (aspoň podle mne)
3/Neodpověděl jsi mi na druhou část dotazu
Offline
max_execution_time je pevne stanovený podľa varianty webhostingu a preto ho nieje možné nijak definovať zo strany užívateľa a preto ani funkcia set_time_limit() nič nevykoná lebo nemá oprávnenie na zmenu danej premennej.
Ak potrebuješ prerušiť priebeh niečoho môžeš to stopovať napr pomocou microtime a ak to prekročí nejakú hodnotu tak to proste stopneš a beh skriptu bude pokračovať ďalej.
Ohľadne toho či to je zapísané v php.ini to netuším, na toto ti musí odpísať len sám admin.
Offline
nj,ale potom je divný, proč f-ce set_time_limit není mezi zakázanými.To bude asi opravdu nastavený v cfg Apache.
Nic,zkusím ten microtime,díky za tip.
Offline
Stránky 1