Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Przekroczenie limitu czasu - pomocy
glogu
post 14.07.2007, 00:40:42
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 1.07.2007

Ostrzeżenie: (0%)
-----


W jaki sposób sprawdzić, czy połaczenie z serwerem może przekroczyć limit oczekiwania.
Pytam, bo w trakcie pracy z funkcją file_get_contents wyskakuje mi komunikat następującej streści:
  1. Warning: file_get_contents(http://www.conseil-pologne.com) [function.file-get-contents]:
  2. failed to open stream: Próba połšczenia nie powiodła się, ponieważ połšczona strona nie
  3. odpowiedziała poprawnie po ustalonym okresie czasu lub utworzone połšczenie
  4. nie powiodło się, ponieważ połšczony host nie odpowiedział.
  5.  
  6. Fatal error: Maximum execution time of 60 seconds exceeded


Przypuszczam że wynika to z tego, iż serwer istnieje ale nie można się z nim połaczyć.
A może się mylę? Bo nie wiem czy to normalne, że z powodu tego przekroczenia limitu cały skrypt się wysypuje'

Ten post edytował glogu 14.07.2007, 00:41:29
Go to the top of the page
+Quote Post
maziak
post 14.07.2007, 05:17:02
Post #2





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 9.07.2007

Ostrzeżenie: (0%)
-----


Ta po przekroczeniu tego czasu sie wysypuje. Mozna ten czas przestawic w ustawieniach przegladarki. Tak wynika przynajmniej z moich doswiadczen. tongue.gif
Zobaczymy co napisza profesjonalisci tongue.gif

Jedno jest pewne, jezeli wykonujesz jakis prosty skrypt, a muli on ponad 60 sekund - cos jest nie tak z serwerem. Przeinstaluj/zmien czy co tam.
Go to the top of the page
+Quote Post
delfinium
post 14.07.2007, 07:52:47
Post #3





Grupa: Zarejestrowani
Postów: 90
Pomógł: 6
Dołączył: 30.06.2007
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


Zamiast file_get_contents użyj CURL.

  1. <?php
  2. function getPage( $pageUrl, $maxTime ) {
  3. $curl = curl_init( $pageUrl );
  4. curl_setopt( $curl, CURLOPT_RETURNTRANSFER,);
  5. curl_setopt( $curl, CURLOPT_TIMEOUT, $maxTime );
  6. $result['content'] = curl_exec( $curl );
  7. $result['pagesize'] = curl_getinfo( $curl, CURLINFO_SIZE_DOWNLOAD );
  8. $result['httpcode'] = curl_getinfo( $curl, CURLINFO_HTTP_CODE );
  9. curl_close( $curl );
  10. return $result;
  11. }
  12. $result = getPage( 'http://www.conseil-pologne.com', 60 );
  13. ?>

Oczywiście tutaj możesz sobie dowolnie ustawić maksymalny czas połączenia ale pamiętaj, że nie może on być dłuższy niż całkowity czas na wykonanie skryptu bo też się wywali. W zmiennej $result['pagesize'] będziesz miał liczbę pobranych bajtów, jeśli będzie 0 i $result['httpcode'] będzie 0 to znaczy, że się nie idzie połączyć w ustawionym czasie. Ale w ten sposób skrypt Ci się nie wywali po przekroczeniu czasu połączenia.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.06.2025 - 20:27