Webseiten auslesen: ergi

Spontan

Erfahrenes Mitglied
Schönen guten Abend.
Ich versuche das Wetter von web.de auszulesen um es über mein LCD-Display laufen zu lassen.
Jetzt hab ich mir mal im phpmanual das Teil zum auslesen des <title> angeschaut werde daraus aber nicht schlau....

PHP:
<?php
$file = fopen ("http://wetter2.web.de/cgi-bin/web-de/wetter_stadt.pl?ID=1639", "r");
if (!$file) {
    echo "<p>Datei konnte nicht geöffnet werden.\n";
    exit;
}
while (!feof ($file)) {
    $line = fgets ($file, 1024);
    if(eregi("<CENTER>(.*)&deg;</CENTER></TD>", $line, $out)) {
    echo $out[1];
    }
}
fclose($file);
?>

Ausgabe: 20282223271315131117

als Ausgabe bekomme ich aber immer nur einen string und keinen anständig formatieren array....

Ich komm einfach nicht darauf wie ich das umschreiben muss um einen anständig-formatierten array mit den Werten zu bekommen....


Danke für die Hilfe.
 
Vielleicht so?
PHP:
<?php
$file = fopen ("http://wetter2.web.de/cgi-bin/web-de/wetter_stadt.pl?ID=1639", "r");

if (!$file) {
    echo "<p>Datei konnte nicht geöffnet werden.\n";
    exit;
}

$werte = array();

while (!feof ($file)) {
	$line = fgets ($file, 1024);
	if(eregi("<CENTER>(.*)&deg;</CENTER></TD>", $line, $out)) {
		$werte[] = $out[1];
    }
}

fclose($file);

echo "Heute: ".$werte[5]." - ".$werte[0]."\n";
echo "Morgen: ".$werte[6]." - ".$werte[1]."\n";
echo "Übermorgen: ".$werte[7]." - ".$werte[2]."\n";
// Usw.
?>
 
Oder vielleicht auch einfach so:

PHP:
$page = file_get_contents("http://wetter2.web.de/cgi-bin/web-de/wetter_stadt.pl?ID=1639");
if (preg_match_all("/([0-9]+)&deg;/", $page, $out))
	{
	$result = $out[1];
	foreach ($result as $key => $value)
		echo $key." => ".$value."<br>";
	}
Getestet und funktioniert.

Gruss
SQiShER
 
danke.
da muss ich mir mal das preg_match_all anschauen,
irgendwelche tutorials zur hand?


was ist bei:
if (preg_match_all("!\[ALT\](.*)\[WIDTH\]!", $page, $out))
{
$result = $out[1];
foreach ($result as $key => $value)
echo $key." => ".$value."<br>";
}

falsch wenn in der page:
PHP:
<TD BGCOLOR="#FFFFFF" CLASS="b"><CENTER><IMG SRC="/img/symbole/k_ani4.gif" BORDER="0" ALT="stark bew." WIDTH="35" HEIGHT="32"></CENTER></TD>

steht?
 
Zuletzt bearbeitet:
Durch dein Pattern steige ich leider irgendwie nicht durch, deshalb poste ich einfach mal ne Lösung dazu, ohne zu sagen was vorher falsch war. ;)
PHP:
if (preg_match_all("/ALT=\"([^\"]*)/", $page, $out))
	{
	$result = $out[1];
	foreach ($result as $key => $value)
		echo $key." => ".$value."<br>";
	}
Dann sucht er nach der Zeichenfolge 'ALT="' und liest dann alle Zeichen, bis ein " auftaucht.

Links zum Thema:
- Funktionsbeschreibung: preg_match_all()
- RegExp-Tutorial

Ich hoffe, das hilft dir weiter!
 
Zurück