$IPS_VALUE vs. $_IPS['VALUE'] im String?

Hi!

Ich hole mir via. WWW-Reader einen String und schreibe diesen in die entsprechende Variable, welche wiederum bei Änderung folgendes Script triggert:

<?
/*
*****************************************************************************************
Verschickt eine email, wenn eine neue Firmware für die Homematic-CCU zur Verfügung steht
*****************************************************************************************
File     : EMAIL - Homematic-CCU Firmware-Update
Trigger  : ID 16938  [Sonstiges\Aktuelle Firmware für Homematic-CCU]
Interval : onchange
*/


// email-Betreff
		$betreff = "Neue Firmware für Homematic-CCU: $IPS_VALUE";

// email-Inhalt
		$text ="Firmware $IPS_VALUE für die Homematic-CCU steht zum Download zur Verfügung.

";
		$text.="Download-Link: http://www.homematic.com/index.php?id=151

";

		SMTP_SendMail(26571 /*[EMAIL\SMTP\E-Mail an "Administrator" senden (SMTP)]*/ , $betreff, $text);

?>

Das läuft seit der generellen* Umstellung von $IPS_VALUE auf $_IPS[‚VALUE‘] in eine Fehlermeldung:

Parse error:  syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in [EMAIL\Haus\EMAIL - Homematic-CCU Firmware-Update] on line 13
  • alle anderen Scripte, die ich mit Suchen und Ersetzen umgestellt habe, laufen fehlerfrei…

Liegts an der String-Variable (z.B. aktuell 1.506) die mit $_IPS[‚VALUE‘] nicht zurecht kommt… oder reichts in dem Fall nicht aus $IPS_VALUE einfach durch $_IPS[‚VALUE‘] auszutauschen… fehlt noch 'was?

probier es mal so.

// email-Betreff
        $betreff = "Neue Firmware für Homematic-CCU: ".$_IPS['VALUE'];

// email-Inhalt
        $text ="Firmware ". $_IPS['VALUE']." für die Homematic-CCU steht zum Download zur Verfügung.

";
        $text.="Download-Link: http://www.homematic.com/index.php?id=151

";

        SMTP_SendMail(26571 /*[EMAIL\SMTP\E-Mail an "Administrator" senden (SMTP)]*/ , $betreff, $text);

Danke Rainer!
Läuft;)

In speziellen Fällen ist dann das simple F&R doch nicht ganz ohne Nacharbeit…

P.S. Ich habe mal die Themenüberschrift entsprechend angepasst.

Moment mal mein Freund.

Nur für den Lerneffekt.

Wie sah den deine Zeile aus die nicht funktioniert hat?

Steht doch alles oben :eek:

Fehler in Zeile 13, also Skriptzeile 13 (startet mit $betreff :wink: ) mit Rainers Zeile (startet mit $betreff ) vergleichen. Zeile 16 ist auch angepasst.

Gruß
Bruno

Das ist also das Script vor seiner Umstellung auf „$_IPS[‚VALUE‘]“!
Mich interessiert wie er das Script auf „$_IPS[‚VALUE‘]“ umgestellt hat.

Danach kam ja der Fehler. :wink:

Über alle Dateien „Suchen und Ersetzen“… :slight_smile:

Wenn ich das dann richtig verstanden habe ist das so:

vorher:


// email-Betreff
        $betreff = "Neue Firmware für Homematic-CCU: $_IPS['VALUE']";

nachher:


// email-Betreff
        $betreff = "Neue Firmware für Homematic-CCU: ".$_IPS['VALUE'];

Besten Dank.

OK, überzeugt :wink:

Ich vermeide wo immer es auch geht Anführungszeichen.


echo 'Das ist Text!';

mit Variable so:


echo 'Das ist Text! Und das ist eine Variable: '.$variable;

Es gibt jedoch einen grundlegenden funktionalen Unterschied zwischen diesen beiden Zeichen: der Bereich zwischen Anführungszeichen wird von PHP ausgewertet, während alles, was zwischen Hochkommata steht, von PHP schnell übergangen wird.