php - ukončení funkce...

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

php - ukončení funkce...

Příspěvek od Václav Sedlář »

Ahoj, v PHP mám cyklus, který v každém průchodu předá metodě číslo,v té metodě se číslo vloží do html parametru get a poté pomocí php html parseru odkaz odešlu a výsledek pomocí párseru stáhnu...

Vše funguje, ale mám jeden problém - někdy je cílová adresa (server) přetížen a nedá žádný výsledek (nebo za hodně dlouho)...Myslel jsem, že to vyřeší nastavený max. čas (v php.ini), který script ukončí, ale ne - místo toho se jakoby nic neděje (prohlížeč ukazuje načítání stránky) a php se sekne (musím restatovat localhost)...

Lze nějak udělat, že když do xxx sekund nedostanu výsledek, aby se metoda ukončila a mohl jsem vypsat třeba "služba je momentálně nedostupná"?

Názorný příklad:

Předání parametru funkci a na konci zobrazení výsledku:

Kód: Vybrat vše

//pomocí formu odešlu čísla do php kde uložím do pole:
.......
$pole=array();//toto pole obsahuje už ty čísla 

//pak spustím foreach kde předám číslo metodě:
$vysledek="";
foreach ($pole as $cislo) {
 $vysledek.=moje_funkce($cislo);
}
...
echo $vysledek;
Samotná funkce (je v jiném php souboru, který se pomocí require_once vkládá do toho prvního:

Kód: Vybrat vše

function moje_funkce($cislo){
 $url="http://www.xxx.cz?cislo=$cislo"
//html parser:
 $html = @file_get_html($url);//tu se to sekne - parser čeká na odpověď přetíženého serveru...
 $vysledek=......//různé zpracování výsledku//sem už se nedostanu
//return $vysledek;
}
senik88
Začátečník
Začátečník
Uživatelský avatar
Registrován: 11. led 2009
Bydliště: Všestary
Kontaktovat uživatele:

Re: php - ukončení funkce...

Příspěvek od senik88 »

Minimálně bych to parsování v moje_funkce() obalil do try/catch bloku kvůli lepšímu odchytávání výjimek. Tím by se snad i mělo vyřešit ukončování skriptu nastaveným max časem. Lepší řešení mě momentálně nenapadá.
Intel Core i7-4930k + SilentiumPC Grandis 2 | Gigabyte GA-X79-UP4 | Kingston HyperX 16 GB DDR3 1866 MHz (4x4 GB) | AMD Radeon RX Vega 56 + Raijintek Morpheus II | SSD Intel 520 240 GB + Crucial MX300 1TB | Corsair HX620 | Fractal Design Define R6 | HP LP2475w + HP ZR22w | HyperX Alloy FPS Pro | Gigabyte M8000X
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: php - ukončení funkce...

Příspěvek od Václav Sedlář »

ok, zkusím a dám vědět...
Odpovědět

Zpět na „Programování a web“