[PHP] file_get_contents mit 17MB File, lokal ok, extern error?

  • Hallo!
    Ich lade mit file_get_contents("http://[...]") ein XML-File und schmeisse die Daten in eine Datenbank. Die XML Files hole ich von einem Server. Mit einer kleinen Datei klappt das (32kB), mit einer großen Datei (17MB) gibts einen Fehler. Ich habe testweise die große Datei im Browser geöffnet und sie lokal gespeichert. Lokal kann ich beide Dateien problemlos einlesen, der Fehler liegt also nicht innerhalb der Datei, sondern an der Übermittlung. Keine Ahnung, was ich machen soll, um das Problem zu lösen. Hier die Fehlermeldung, username und pw sind rauseditiert:

    Code
    Warning: file_get_contents(http://www.infomedia.co.at/dynamicxmlimage.php?u=<username>&p=<password>) [function.file-get-contents]: failed to open stream: HTTP request failed! in <pfad>\<dateiname>.php on line 71

    Zeile 71 in <dateiname>.php:

    Code
    $file = file_get_contents("http://www.infomedia.co.at/dynamicxmlimage.php?u=<username>&p=<password>");
  • Kann sein, dass deine Verbindung ein Timeout erleidet am Server weil er die 17MB nicht schnell genug runterlädt? (Timelimit überschritten)

    /* sourcecode should not be commented. it was hard to write, it should be hard to read */

  • Ich weiß es nicht. Warum sollte allerdings file_get_contents langsamer sein als ein "normaler" Browseraufruf?

    Ich habe gerade noch einmal versucht, das File im Browser zu öffnen, diesmal kam allerdings folgende, aufschlussreiche Fehlermeldung:
    Fatal error: Maximum execution time of 90 seconds exceeded in C:\web\infomedia\www\dynamicxmlimage.php on line 42

    Scheinbar braucht der Aufruf ungefähr 90 Sekunden im Browser, wobei der infomedia-Server nach 90 Sekunden kappt. Wenn file_get_contents nun ein paar Sekunden langsamer ist, könnte das der Grund für die Probleme sein. Hoffentlich meldet sich deren Techniker bald, 17MB XML sind eigentlich reichlich bescheiden..

  • Ich habe gerade noch einmal versucht, das File im Browser zu öffnen, diesmal kam allerdings folgende, aufschlussreiche Fehlermeldung:
    Fatal error: Maximum execution time of 90 seconds exceeded in C:\web\infomedia\www\dynamicxmlimage.php on line 42

    Das ist aber die Beschränkung der Laufzeit deines lokalen PHP-Skripts (max_execution_time in der php.ini).

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!