Typkonvertierung string=>float schlägt fehlt

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.

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.

Mir schon: PHP: strip_tags - Manual :).

Und wieder eine Zeile gespart. Danke Horst. :wink:


$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! :slight_smile:

gremlin36