String auswertung

Hi leute ich komme nicht weiter Bitte helft mir.
Ich möchte in einem String nach bestimmten schlüsselwörtern suchen.
in der vorlage klapt das nur mit meinem String leider nicht.
Warum ???

Beispiel:=== Klapt

<?php
  $string = 'Hallo Welt!';
  if(stristr($string, 'Erde') === FALSE) {
    echo '"Erde" nicht gefunden';
  }
// Ausgabe: "Erde" nicht gefunden
?> 

Mein versuch:===Klapt nich

<?
$str = GetValueString('Wetter_Vorhersage');
$str = html_entity_decode($str);
  if(stristr($str, 'sonnig') === True) {
    echo 'Es is Sonnig';
  }
?>

So nun noch der String inhalt

‚Am Sonntag ist es sonnig bei nahezu wolkenfreiem Himmel. Dabei kühlt es sich in den Morgenstunden auf 15 Grad ab, im Tagesverlauf werden dann 29 Grad erreicht. Der Wind weht schwach aus südöstlichen Richtungen.‘

Moin,

wenn Du die Abfrage wie folgt machst:


if(stristr($str, 'sonnig') !== false) {
    echo 'Es ist sonnig';
  }

passt die Meldung wieder zum Blick aus dem Fenster :slight_smile:

stristr() und ähnliche Suchfunktionen liefern false zurück, wenn der String nicht gefunden wurde. Als „Erfolgsmeldung“ wird gemeinerweise nicht „true“ gemeldet, sondern zur möglichen Weiterverwendung die Position im String, an der der Suchstring gefunden wurde.

Danke niko aber auch das klapt leider nicht

Merkwürdig. Da ich noch nicht IP-Symcon nutze, habe ich folgenden „Versuchsaufbau“ erfolgreich genutzt:


<?
$str = 'Am Sonntag ist es sonnig bei nahezu wolkenfreiem Himmel. Dabei kühlt es sich in den Morgenstunden auf 15 Grad ab, im Tagesverlauf werden dann 29 Grad erreicht. Der Wind weht schwach aus südöstlichen Richtungen.';
$str = html_entity_decode($str);
if(stristr($str, 'sonnig') !== false) {
    echo 'Es ist sonnig';
}
?>

Klappt dieser Code bei Dir? Wenn ja, dann liefert vielleicht „GetValueString(‚Wetter_Vorhersage‘)“ nicht genau das zurück, was Du hier erwartest.

@professorakiera

Mach mal in Deinem ersten Script aus dem === ein ==.

Gruß Thomas

danke nun hats geklapt warum es am anfang nicht ging weis ich allerdings auch nicht

und hier steht auch warum…

stristr() gibt einen String zurück… „===“ prüft nicht nur auf Inhalt, wie „==“ es tut, sondern auch auf den Variablentyp. Da String aber immer ungleich Boolean ist war nichts anderes zu erwarten als dass die Bedingung nicht erfüllt wird.

Gruß,

Toni