PHP: Wort in einem String finden und in Var schreiben

Moin,

ich bin ja immer stets bemüht mir den Kram selbst rauszufuddeln. Aber hier komme ich nicht weiter.

Ich habe das Google Kalender Script eingebunden und bisher nur einen g.T. Termin ausgewertet und wenn der vorhanden war, eine „aktives PopUp“ Variable für IPS View befüllt, so dass ein Erinnerungs PopUp auf dem Tablet aufgeht…

Sooo … jetzt wollte ich das ganze noch erweitern. Konkret für Mülltonnen. Aber ich scheitere daran, den String auszuwerten und wenn die Termine vorhanden sind, entsprechen irgendwo abzulegen.

Was hab ich:

Kalender auslesen, funktioniert soweit. Ich habe das Script so angepasst, dass nur noch „Bio Restmüll“ in die Kalender Var geschrieben wird. Also nur die ganztags Termine, ohne Datum etc.

String auslesen, klappt auch.

Was will ich:
Suchen nach „Bio“
Suchen nach „Restmüll“

Wenn „Bio“ im String vorhanden, dann schreibe „Bio“ in $Var1
Wenn „Restmüll“ vorhanden, dann schreibe „Restmüll“ in $Var2
usw.

Was ist mein Problem:
Irgendwann bin ich dann darauf gekommen ein Array dafür zu bauen. Ich finde aber nicht, was ich nutzen muss, den String so zu zerlegen, dass ich eben die einzelnen „Worte“, wenn vorhanden, schreiben kann.

Hier mein Script bisher:


<?
$scriptid = 19911 /*[Visualization\GoogleCalErinnerung\PopUps]*/;
$today = date("d.m.Y ");
$uebermorgen = date("j")+2;
$monat = date("m")+0;
$jahr = date("Y")+0;
$meinString = getvalue(14155 /*[Visualization\GoogleCalErinnerung\ReadCal\Kalender]*/);
$findMich[1] = 'Paradieschen';
$findMich[2] = 'Bio';
$findMich[3] = 'Papier';
$findMich[4] = 'Restmüll';

$pos[1] = stristr($meinString, $findMich[1]);
$pos[2] = stristr($meinString, $findMich[2]);
$pos[3] = stristr($meinString, $findMich[3]);
$pos[4] = stristr($meinString, $findMich[4]);

if ($pos[1] === false)
	{
		IPS_SetEventActive(15532 /*[Visualization\GoogleCalErinnerung\ButtonTimer\ButtonTimer\]*/ , true);
	}
		else
			{
    		setvaluestring (33843 /*[Visualization\IPSView\AktivesPopUp_Paradieschen]*/ , 'Paradieschen');
			}

if ($pos[2] === false)
	{
   
   IPS_SetEventActive(15532 /*[Visualization\GoogleCalErinnerung\ButtonTimer\ButtonTimer\]*/ , true);
	}
		else
			{
    		setvaluestring (41394 /*[Visualization\IPSView\AktivesPopUp_Bio]*/, 'Bio');
			}
	
if ($pos[3] === false)
	{
  
   IPS_SetEventActive(15532 /*[Visualization\GoogleCalErinnerung\ButtonTimer\ButtonTimer\]*/ , true);
	}
		else
			{
    		setvaluestring (36711 /*[Visualization\IPSView\AktivesPopUp_Papier]*/, 'Papier');
			}
	
if ($pos[4] === false)
	{
  
   IPS_SetEventActive(15532 /*[Visualization\GoogleCalErinnerung\ButtonTimer\ButtonTimer\]*/ , true);
	}
		else
			{
    		setvaluestring (13161 /*[Visualization\IPSView\AktivesPopUp_Restmüll]*/, 'Restmüll');
         }

	 


if($IPS_SENDER == "Paradieschen")
{
    switch($IPS_VALUE)
    {
        case 1:
        IPS_SetEventCyclicDateFrom(29257 /*[Visualization\GoogleCalErinnerung\PopUpParadieschen\]*/, $uebermorgen, $monat, $jahr);
			//IPS_SetEventActive(29257 /*[Visualization\GoogleCalErinnerung\PopUpParadieschen\]*/ , false);
        //IPS_SetEventLimit(29257 /*[Visualization\GoogleCalErinnerung\PopUpParadieschen\]*/ , 1);
        break;
        case 0:
        break;
    }

}
?>


An dem Teil scheitere ich. Hier habe ich schon alles mögliche was es so für Strings gibt versucht, leider nie mit dem Wunschergebnis :frowning:
$pos[1] = stristr($meinString, $findMich[1]);
$pos[2] = stristr($meinString, $findMich[2]);
$pos[3] = stristr($meinString, $findMich[3]);
$pos[4] = stristr($meinString, $findMich[4]);

Vielleicht kann mir einer einen Tipp geben, wonach ich noch suchen kann!

Danke!!

Hallo

$a === $b 	Identisch 	Gibt TRUE zurück wenn $a gleich $b ist und beide vom gleichen Typ sind

stristr gibt aber den gefunden Teilstring zurueck.
Probier mal strpos

Hi!

Da hab ich hier eine passende Lektüre für dich :slight_smile:

IP-Symcon - Wie kann ich… 2.0
> RegEx ist der Teil, wo dein Suchwort quasi rein muss :slight_smile: Testen kann man das hier auch sehr schön >> Rubular: a Ruby regular expression editor and tester

Grüße,
Chris

Ei subbär … bei RegEx bin ich noch nicht gelandet bei meiner Suche :smiley: Da werde ich mal ansetzen.

Mit strpos hatte ich auch schon hin und her probiert.

Danke Euch für die Tipps :wink: