Hallo,
ich habe ein Problem mit dem folgenden Code. Das Ding liest aus einer Webseite den Luftdruck aus und soll den in eine IPS Float Variable schreiben. Das Konvertierungsergebnis ist aber immer 0. Was mache ich falsch???
Danke für Tips im voraus!
gremlin36
<?
$remote = "http://www.izb.fraunhofer.de/wetter/";
$content = @file_get_contents($remote);
if((strpos($http_response_header[0], "200") === false)) {
return;
}
$pos1=strpos($content,"Luftdruck",1000);
$pos2=strpos($content,"hPa");
$Luftdruck= trim(substr($content,$pos1+10,$pos2-$pos1-10))*1.0;
SetValuefloat(xxxxx, $Luftdruck);
?>
Für was soll die *1.0 sein? Ohne diese dürfte es gehen.
ralf
1. November 2009 um 23:19
3
Und falls das nicht funktioniert kannst du explizit mit floatval(…) deine Umwandlung vornehmen.
$remote = "http://www.izb.fraunhofer.de/wetter/";
$content = @file_get_contents($remote);
if((strpos($http_response_header[0], "200") === false)) {
return;
}
$pos1=strpos($content,"Luftdruck",1000);
$pos2=strpos($content,"hPa");
$Luftdruck = trim(substr($content,$pos1+10,$pos2-$pos1-10));
$Luftdruck = str_replace('<strong>', '',$Luftdruck);
$Luftdruck = str_replace('</strong>', '',$Luftdruck);
SetValuefloat(xxxxx,(float)$Luftdruck);
Da war noch „blöder“ html Code dabei… so sollte es jetzt gehen, mir fällt grad nix eleganteres ein.
Horst
2. November 2009 um 00:10
5
Und wieder eine Zeile gespart. Danke Horst.
$remote = "http://www.izb.fraunhofer.de/wetter/";
$content = @file_get_contents($remote);
if((strpos($http_response_header[0], "200") === false)) {
return;
}
$pos1=strpos($content,"Luftdruck",1000);
$pos2=strpos($content,"hPa");
$Luftdruck = trim(substr($content,$pos1+10,$pos2-$pos1-10));
$Luftdruck = strip_tags($Luftdruck);
SetValuefloat(xxxxx,(float)$Luftdruck);
oder so:D:
$remote = "http://www.izb.fraunhofer.de/wetter/";
$content = @file_get_contents($remote);
if((strpos($http_response_header[0], "200") === false)) {
return;
}
SetValuefloat(xxxxx,(float)strip_tags(trim(substr($content,(strpos($content,"Luftdruck",1000))+10,(strpos($content,"hPa"))-(strpos($content,"Luftdruck",1000))-10))));
Die letzte Variante sah umwerfend gut aus und hat auch funktioniert.
@ Ferengi-Master: Die *1.0 wäre eine implizite Typumwandlung gewesen (wenn’s funktioniert hätte)
Danke für die Tips!
gremlin36