Moin,
Aber da kommt ein "gzuncompress Data-Error". Wo könnte das Problem liegen?
Weil da noch was nicht richtig ist. Ich poste jetzt mal hier bei mir den Teil der das holen und dekomprimieren besorgt. Nebenbei erkennt er noch die häufigsten Fehler und bricht das Skript gegebenenfalls ab, bzw. hinterlegt eine Fehlermeldung in einer globalen Variable (die wird dann später angezeigt und statt der aktuellen die gecachte Version genommen).
$fh = fsockopen("forum.de.selfhtml.org", 80, $errno, $errstr, 5);
if(!$fh) {
if($errno) {
$GLOBALS["fehler"][] = "Konnte die Verbindung zu sbu_server.pl nicht öffnen: ($errno) $errstr";
return false;
} else {
$GLOBALS["fehler"][] = "Konnte die Verbindung zu sbu_server.pl aufgrund eines unbekannten Fehlers nicht öffen. Evt. kann forum.de.selfhtml.org nicht aufgelöst werden?";
return false;
}
}
fwrite($fh, "GET /cgi-bin/sbu_server.pl HTTP/1.0\nUser-Agent: Henryk war hier\nHost: forum.de.selfhtml.org\nConnection: close\n\n");
do {
$line = "";
while($tmp = fgets($fh,1024)) {
$line .= $tmp;
if(strlen($tmp) < 1024 || $tmp[1023] == "\n") break;
}
if(preg_match("/^HTTP/1.[01]\s+(\d{3})\s+(.*)$/",$line, $matches))
if($matches[1] != "200")
die("HTTP error (".$matches[1]."): ".$line);
else
$status = $matches[1];
if(trim($line) == "") break;
} while(!feof($fh));
do {
$line = "";
while($tmp = fgets($fh,1024)) {
$line .= $tmp;
if(strlen($tmp) < 1024 || $tmp[1023] == "\n") break;
}
if(preg_match("/^(\d{3})/",$line, $matches))
if($matches[1] != "200")
die("Strange Errorcode (".$matches[1]."): ".$line);
else
$status = $matches[1];
if(trim($line) == "") break;
} while(!feof($fh));
$content = "";
while(!feof($fh)) $content .= fread($fh, 1024);
$org = gzuncompress($content);
if($org == FALSE) die("blök<br>");
In $org liegt dann die dekomprimierte Skriptausgabe. Die kannst du dann nach Zeilen auftrennen (z.B.: mit split oder preg_split) und Zeilenweise abarbeiten.
--
Henryk Plötz
Grüße aus Berlin
* Help Microsoft combat software piracy: Give Linux to a friend today! *