login  Naam:   Wachtwoord: 
Registreer je!
 Forum

file_get_contents geeft een time out

Offline Frederic - 14/10/2005 22:31
Avatar van FredericPHP ver gevorderde Ik probeer RSS feeds te openen via
file_get_contents($feedadres). Nu, dit werkt voor iedere feed, behalve voor http://www.zdne...s_news.xml . Als ik deze gebruik krijg ik een timeout bij file_get_contents. Dit lijkt me niet kunnen, aangezien de andere feeds geweldig snel laden en deze na 5min nog niet in orde is. Als ik het adres van de feed van ZDNET ingeef in mijn URLbalk kom ik gewoon op de feed uit, dus het bestand bestaat wel steeds. Is er een mogelijkheid dat ze het blokkeren via .htaccess? Of hoe kan ik dit euvel verhelpen?

3 antwoorden

Gesponsorde links
Offline Thomas - 14/10/2005 23:11
Avatar van Thomas Moderator Ik weet niet of je met file_get_contents iets kan regelen qua timeouts? Ook snap ik niet waarom de xml-file wel op te vragen is via je browser, en niet via file-get-contents; de "request" lijkt mij in beide gevallen toch op dezelfde wijze plaatsvinden?

Gebruik anders sockets - daarbij heb je meer controle over timeouts e.d..

Ook komt het wel eens voor dat een feed tijdelijk onbereikbaar is.
Kun je met jouw host wel externe bestanden ophalen met file-get-contents?
Offline NCube - 14/10/2005 23:12
Avatar van NCube HTML beginner Je kan deze functie gebruiken om de pagina en de inhoud op te vragen.
  1. <?php
  2. function getfromurl( $url ){
  3. $parsed = parse_url( $url );
  4. if( !isset( $parsed['path'] ) ){
  5. $parsed['path'] = "/";
  6. }
  7.  
  8. $fp = fsockopen( $parsed['host'], 80, $errno, $errstr, 5 );
  9. if( !$fp ){
  10. return $errstr." (".$errno.")<br />";
  11. } else {
  12. $out = "GET ".$parsed['path']." HTTP/1.1\r\n";
  13. $out .= "Host: ".$parsed['host']."\r\n";
  14. $out .= "User-Agent: Googlebot/2.1\r\n";
  15. $out .= "Connection: Close\r\n\r\n";
  16.  
  17. fwrite( $fp, $out );
  18.  
  19. $contents = "";
  20. $reading = false;
  21.  
  22. while (!feof($fp)) {
  23. $temp = fgets( $fp, 128 );
  24.  
  25. if( $reading ){
  26. $contents .= $temp;
  27. }
  28.  
  29. if( $temp == "\r\n" ){
  30. $reading = true;
  31. }
  32. }
  33.  
  34. fclose( $fp );
  35. return $contents;
  36. }
  37. }
  38. ?>
Offline Frederic - 14/10/2005 23:15
Avatar van Frederic PHP ver gevorderde
Citaat:
Ook komt het wel eens voor dat een feed tijdelijk onbereikbaar is.
Kun je met jouw host wel externe bestanden ophalen met file-get-contents?

Nogmaals: andere feeds lukken probleemloos, alleen deze niet. Als ik gelijktijdig de feed laad file file_get_contents en in de browser (20x geprobeerd) dan lukt de browserrequest altijd, en de file_get_contents geen ene keer...
Maar is een time-out van 5min niet lang genoeg? Me dunkt als alle andere feeds op 0.12 seconden bezig zijn...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.183s