PHP čas běhu funkce

dobes

PHP čas běhu funkce
« kdy: 30. 04. 2012, 09:39:53 »
Zdravím,

mám PHP skript (pracuji na windows), který pomocí funkcí get_headers a pomocí fsockopen zjišťuje existenci určitých url adres. Problém ale nastává tehdy, když chci zjistit postupně více takových url. například: postupně zkouším www.seznam.cz, www.google.com, www.blablabla.cz, www.root.cz. Ty url, na které se funkce get_headers dostane, tak ty běží v pohodě, ale pokud příjde na řadu nedostupná url, tak zabere celý zbytek času běhu skriptu.

Prosím nenašel by se někdo, kdo by mi poradil jak nastavit čas, kdy by se funkce např. po sekundě ukončila a pokračovala dál?

Mockrát děkuji.


aaaaaaaaaaaa

Re:PHP čas běhu funkce
« Odpověď #1 kdy: 30. 04. 2012, 09:48:32 »
Co posledny parameter u fsockopen?

dobes

Re:PHP čas běhu funkce
« Odpověď #2 kdy: 30. 04. 2012, 12:25:08 »
To je právě ten problém, že tento parametr nefunguje. No a jak jsem se na nejrůznějších fórech doečetl, tak asi nefunguje nikomu. Nejde tento problém vyřešit nějakým jiným způsobem?

Děkuji

dobes

Re:PHP čas běhu funkce
« Odpověď #3 kdy: 30. 04. 2012, 12:35:13 »
resp. funguje, ale pouze pokud dojde ke spojení prostřednictvím funkce fsockopen, ale já bych potřeboval aby daná funkce jen zkontrolovala třeba na sekundu danou url a když nic nenajde, tak se přeruší a začne vykonávat další kontrola.

Re:PHP čas běhu funkce
« Odpověď #4 kdy: 30. 04. 2012, 12:47:45 »
Hmm... máte povolení spouštět z php příkazy systému? Ping by to řešil.... :D


Mirek

Re:PHP čas běhu funkce
« Odpověď #5 kdy: 30. 04. 2012, 13:03:43 »
tak pokud nefunguje správně parametr u fsockopen co třeba použít curl ?

dobes

Re:PHP čas běhu funkce
« Odpověď #6 kdy: 30. 04. 2012, 13:38:50 »
ping i curl jsem zkoušel a je to to stejné, když zadám nesmyslnou url, tak stejně čeká celou dobu do konce vykonávání skriptu.


to je jedno

Re:PHP čas běhu funkce
« Odpověď #8 kdy: 30. 04. 2012, 15:02:59 »
to se mi nezda ze by curl neumel omezit cas...

dobes

Re:PHP čas běhu funkce
« Odpověď #9 kdy: 30. 04. 2012, 15:20:22 »
stream_set_timeout jsem zkoušel taky, ale funguje stejně jako timeout u fsockopen, takže až po připojení. curl má taky několik timeoutů, ale ani jeden mi nefungoval, tak nevim.

tadeas

Re:PHP čas běhu funkce
« Odpověď #10 kdy: 30. 04. 2012, 16:48:15 »
CURLOPT_CONNECTTIMEOUT The number of seconds to wait while trying to connect. Use 0 to wait indefinitely.

Tohle nefunguje? Postni sem kdyžtak kód..

dobes

Re:PHP čas běhu funkce
« Odpověď #11 kdy: 30. 04. 2012, 17:11:39 »
Kód: [Vybrat]
for( $i = 0; $i < 10; $i++ ) {
      $ch     = curl_init("www.blablablablabla.cz");
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            echo "od: ".date('g:i:s', time()) . "</br>";

      $buffer = curl_exec($ch);
      if( !$buffer ) {
        echo "neni</br>";
      } else {
        echo "je</br>";
      }
      curl_close($ch);
      echo "do: " . date('g:i:s', time()) . "</br>";
    }

tak tady je kod. Co jsem vypozoroval je, že se jedna url adresa testuje vždy 12 vteřin a já potřebuju nejlépe 1 vteřinu :-(

tadeas

Re:PHP čas běhu funkce
« Odpověď #12 kdy: 30. 04. 2012, 17:24:47 »
Mně to selže okamžitě (nejspíš rovnou na DNS):
Kód: [Vybrat]
od: 3:23:38</br>neni</br>do: 3:23:38</br>
od: 3:23:38</br>neni</br>do: 3:23:38</br>
od: 3:23:38</br>neni</br>do: 3:23:38</br>                                                                                                                                                           
od: 3:23:38</br>neni</br>do: 3:23:38</br>                                                                                                                                                           
od: 3:23:38</br>neni</br>do: 3:23:38</br>                                                                                                                                                           
od: 3:23:38</br>neni</br>do: 3:23:38</br>                                                                                                                                                           
od: 3:23:38</br>neni</br>do: 3:23:38</br>                                                                                                                                                           
od: 3:23:38</br>neni</br>do: 3:23:38</br>                                                                                                                                                           
od: 3:23:38</br>neni</br>do: 3:23:38</br>                                                                                                                                                           
od: 3:23:38</br>neni</br>do: 3:23:38</br>     

Zkoušel jsi to pouštět v konzoli?

dobes

Re:PHP čas běhu funkce
« Odpověď #13 kdy: 30. 04. 2012, 18:21:42 »
tak už to jede, hned při spuštění příkazové řádky mi to hodilo chybu knihovny php_curl.dll. Tu jsem opravil a už to vypadá, že funguje. Díky moc za rady ;)

Mirek

Re:PHP čas běhu funkce
« Odpověď #14 kdy: 30. 04. 2012, 19:25:46 »
tak když to máš na svém PC, tak si v PHP zapni logování do souboru (nejlépe všech chyb) a tam si ty chyby kontroluj...