DD: Liste externer Daten einlesen

Hallo,

Mich beschäftigt seit mehreren Stunden folgendes Problem:
Ich möchte aus den Daten eines Arrays bestimmte Informationen in ein anderes Array einlesen.
Das funktioniert wie folgt:

  
function dataOf($filename) {  
 if(!@$content = file_get_contents("http://examle.com/".$filename.".html")) return false;  
 //Ein Paar reguläre ausdrücke werden drüber gejagt und anschließend zurück gegeben:  
 return array($wert1, $wert2, $wert3);  
}  

Diese Funktion wird mit einer Schleife für jedes Element des Array durchgeführt.
Die Dateien befinden sich alle auf dem gleichem Server und sind abrufbar.

Das Problem: Des öfteren reagiert file_get_contents nicht. Die Funktion gibt kein false zurück oder bricht file_get_contents ab.
Ich suche jetzt nach einem Weg die Dateien gescheit einlesen zu können. Zum Beispiel, dass die Funktion wenn sie 5 Sekunden nicht reagiert abgebrochen und erneut gestartet wird.
Oder Vielleicht hab ihr ja eine viel bessere Möglichkeit für mich...

Vielen Dank schon mal

DD

  1. Hello,

    Das Problem: Des öfteren reagiert file_get_contents nicht. Die Funktion gibt kein false zurück oder bricht file_get_contents ab.

    Wenn Du Webseiten grabben willst, solltet Du es auch per fsockopen() tun.
    Da kannst Du dann wenigstens das Timeout für den Socket und das Timeout für den jeweiligen Leseversuch in der Schleife, die Du dann ja beutzt, selber bestimmen.

    http://www.php.net/manual/en/function.fsockopen.php

    Liebe Grüße aus Syburg bei Dortmund

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Wenn Du Webseiten grabben willst, solltet Du es auch per fsockopen() tun.
      Da kannst Du dann wenigstens das Timeout für den Socket und das Timeout für den jeweiligen Leseversuch in der Schleife, die Du dann ja beutzt, selber bestimmen.

      http://www.php.net/manual/en/function.fsockopen.php

      Ahhh, sehr fein, habs hinbekommen. :)

      Vielen Dank!

    2. echo $begrüßung;

      Wenn Du Webseiten grabben willst, solltet Du es auch per fsockopen() tun.
      Da kannst Du dann wenigstens das Timeout für den Socket und das Timeout für den jeweiligen Leseversuch in der Schleife, die Du dann ja beutzt, selber bestimmen.

      Den Timeout kann man für die anderen File-Funktionen, die man für HTTP "missbraucht" auch setzen. Es gibt den Parameter $context, der mit diversen HTTP context options gefüllt sein kann. Außerdem gibt es den Default-Konfigurationswert default_socket_timeout.

      echo "$verabschiedung $name";