Servus,
* [0] => Temperature: 86°F / 30°C
eben nicht. Der Text, den Dein Skript ausliest ist in diesem Fall
'Temperature: 68°F / 20°C' - entweder Du wandelst diese
Maskierungen vor dem Suchdurchlauf in das dargestellte Zeichen um,
oder Du berücksichtigst diese Formatierung im Regulären Ausdruck.
Da Du den Fahrenheit-Wert anscheinend gar nicht mehr einplanst,
kannst Du auch gleich per Lookahead nach dem Grad Celsius Wert
suchen (bitte Lookarounds, speziell Lookahead und 'non-capturing
parantheses' nachschlagen; weiter unten ist auch ein Thread zu
RegEx, wo ich versucht habe auf erstere einzugehen).
Der relevante Auszug:
// schaust Du wohl ;)
echo '<pre>' . print_r( $arr, true ) . '</pre>';
// finde eine natürliche Zahl nur, wenn darauf das Grad-Symbol
// als Zeichen oder Formatierung und das C folgen; der Bereich
// im Lookahead wird nur getestet und tritt nicht im Ergebnis auf
preg_match( '/([0-9]+)(?=(?:°|°)C)/', $arr[0], $str );
echo '<pre>' . print_r( $str, true ) . '</pre>';
$wetter['temp'] = $str[1];
Grüsse