Autor Zpráva
temistokles
Profil
Ahojte, chcel by som nastvaiť nejaký časový limit na beh skriptu, konkrétne sa mi jedná o načítavanie súbor z URL cez file(), konkrétne
$data=implode("", file($url));
Teda by som chcel nastvaiť povedzme limit 5 sekúnd, ak sa dovtedy súbor nepodarí načítať ísť ďalej. Je také niečo možné alebo nie?
Aesir
Profil
temistokles:

Pomocí funkce set_time_limit (PHP manuál) můžete omezit dobu běhu celého skriptu (obdoba max_execution_time).
Pokud máte na serveru zapnutý safe mod, tak je vám tato funkce k ničemu.
Spíš bych popřemýšlel, zda je něco podobného potřeba.
temistokles
Profil
Aesir: Set_time_limit nastaví obmedzenie behu skriptu ako celku (samozrejme ak je vypnutý safe_mode). Ale ja potrebujem nastaviť obmedzenie len na časť kódu. Toto by mi teda nepomohlo. A odpoveď na otázku či je to potrebné je bohužiaľ taká, že to potrebné je, nakoľko bude skript spracúvať veľké množstvo údajov z rôznych serverov, mohlo by ho to teda podstatne zbrzdiť, prípadne by sa mohlo stať, že by nespracoval všetky údaje, z tohto pohľadu je teda časové obmedzenie jediným rozumným východiskom.
djlj
Profil
temistokles
Použij FSockOpen a následně stream_set_timeout.
Acci
Profil
$data=implode("", file($url));
No fuj
24k_
Profil *
file_get_contents();

:)
temistokles
Profil
djlj: vyskúšam
Acci: každopádne je to funkčné :)
temistokles
Profil
no a mám ďalší problém, keď použijem

$subor=fsockopen($url, 80, $errno, $errstr, 3);


tak mi otvorí adresu aj s portom (ktorý aj zadám), ale vtip je ale v tom, 6e daná URL obsahuje aj "?nieco=nieco" a keď za to šupnem ":80", je samozrejmé, že sa to uloží do "$_GET['nieco']" a teda je táto premenná chybná. Včuľ a opäť neviem ako ďalej.
Acci
Profil
Nevím, kde dáváš ten port, ale správně se má psát:
http://diskuse.jakpsatweb.cz:80/index.php?action=vthread&forum=9&topic =30862
temistokles
Profil
no ja viem ako sa to ma písať, ale pravda je taká, že ho nepíšem ja ale PHP :(
vysledkom je snaha o otvorenie URL
$url.':80'


teda polopatisticky: k zadanej URL sa pripíše port, bez ohľadu na to, či na správne miesto, alebo rovno na koniec (ide to rovno na koniec)
temistokles
Profil
waw, tak nakoniec sa to podarilo :))
Toto téma je uzamčeno. Odpověď nelze zaslat.

0